Some <termios.h> #define WRAP, undef it.
Grab the warnflags and stdflags from cflags [perl #122694].

They become $Config{ccwarnflags} and $Config{ccstdflags}.
Use sizeof() in UNUSED_ARG and UNUSED_VAR to avoid accessing the values.

The values might even be uninitialized in the case of PERL_UNUSED_VAR.
toke.c: Combine two identical chunks via goto
Fix our-sub method confusion

‘our $foo’ creates a lexical alias to a global symbol.  That lexi-
cal alias is resolved during parsing.  For instance, if you have
‘our $foo; package bar; $foo’, the last $foo is translated by the
parser into a ‘main::foo’ constant, which is then used for sym-
bol lookup.

A similar thing happens with ‘our subs’.  In
‘our sub foo; package bar; foo()’, the foo() call is first translated
into main::foo, and then there are various checks to determine how to
handle this bareword.

Sometimes it is determined to be a method call, and that’s where
things go awry.  For this name transformation should only happen when
we are going to call this sub.  If the parser concludes that it is not
actually a sub call, then the original bareword as it appeared in the
source should be used.  But that is not what was happening.  As a con-
sequence, this code compiles down to F->main::f, rather than F->f.

use experimental "lexical_subs";
our sub f;
{package F}
f F;
__END__
Undefined subroutine &main::f called at - line 4.

And that it is actually doing a method call, not just f(F) can be dem-
onstrated by the fact that extra arguments can come after F without an
intervening comma:

use experimental "lexical_subs";
our sub f { warn "@_" };
{package F}
f F "g";
__END__
F g at - line 2.

And that inheritance works:

use experimental "lexical_subs";
@ISA = "Bar";
our sub f;
undef *f;
sub Bar'f { print "bark\n" }
{package F}
f F;
__END__
bark

This commit corrects the behaviour by discarding the translated
symbol and restoring the original bareword if it turns out it is a
method name.
Avoid gcc warning.

Cwd.xs:200:50: warning: size argument in 'strlcat' call appears to be size of the source; expected the size of the destination [-Wstrlcpy-strlcat-size]

No effective difference since both the source and destination
are buf[MAXPATHLEN].  They are now.
POSIX math: There's no #elifdef, unfortunately.
POSIX math: Cygwin lacks at least nexttoward.
POSIX math: let's not override the real lrint().
POSIX math: Use rounding macros, instead of the c99_ functions.

This avoids the need for forward declarations.  Also rename
the functions with UPPERCASE so people are more careful.
Correct usage of memEQs in attributes.xs [perl #122701]

Reported and diagnosed by Reini Urban <rurban@cpanel.net>.  The call to
memEQs(name, 6, "shared") could fail if name were shorter than 6 bytes,
or if name were longer than 6, but started with "shared".
%ld expected long int, but got ssize_t.
Merge remote-tracking branch 'upstream/blead' into syber/methop
Add new METHOP class for OP_METHOD* ops

Change op structure for OP_METHOD and OP_METHOD_NAMED from UNOP/SVOP
to METHOP.

METHOP is a new structure for method ops, which holds class/method
related info needed at runtime to improve perfomance of
class/object method calls.

Nothing changed in functionality and/or perfomance by this commit.
It just introduces new structure which will be extended with extra
fields and used in next commits.

Added METHOP constructors:
- newMETHOP() for method ops with dynamic method names.
  The only optype for this op is OP_METHOD.
- newMETHOP_named() for method ops with constant method names.
  Optypes for this op are: OP_METHOD_NAMED (currently) and (later)
  OP_METHOD_SUPER, OP_METHOD_REDIR, OP_METHOD_NEXT, OP_METHOD_NEXTCAN,
  OP_METHOD_MAYBENEXT

Changed perly.y, op.c and others to use METHOP instead of UNOP/SVOP
Changed opcodes, B.xs, B::Concise, B::Deparse, B::Deparse's tests, docs

New op class character is '.'