The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

__UNDEFINED__ ckWARN ckWARN_d warner ck_warner ck_warner_d Perl_warner Perl_ck_warner Perl_ck_warner_d Perl_warner_nocontext

__UNDEFINED__ WARN_ALL 0 __UNDEFINED__ WARN_CLOSURE 1 __UNDEFINED__ WARN_DEPRECATED 2 __UNDEFINED__ WARN_EXITING 3 __UNDEFINED__ WARN_GLOB 4 __UNDEFINED__ WARN_IO 5 __UNDEFINED__ WARN_CLOSED 6 __UNDEFINED__ WARN_EXEC 7 __UNDEFINED__ WARN_LAYER 8 __UNDEFINED__ WARN_NEWLINE 9 __UNDEFINED__ WARN_PIPE 10 __UNDEFINED__ WARN_UNOPENED 11 __UNDEFINED__ WARN_MISC 12 __UNDEFINED__ WARN_NUMERIC 13 __UNDEFINED__ WARN_ONCE 14 __UNDEFINED__ WARN_OVERFLOW 15 __UNDEFINED__ WARN_PACK 16 __UNDEFINED__ WARN_PORTABLE 17 __UNDEFINED__ WARN_RECURSION 18 __UNDEFINED__ WARN_REDEFINE 19 __UNDEFINED__ WARN_REGEXP 20 __UNDEFINED__ WARN_SEVERE 21 __UNDEFINED__ WARN_DEBUGGING 22 __UNDEFINED__ WARN_INPLACE 23 __UNDEFINED__ WARN_INTERNAL 24 __UNDEFINED__ WARN_MALLOC 25 __UNDEFINED__ WARN_SIGNAL 26 __UNDEFINED__ WARN_SUBSTR 27 __UNDEFINED__ WARN_SYNTAX 28 __UNDEFINED__ WARN_AMBIGUOUS 29 __UNDEFINED__ WARN_BAREWORD 30 __UNDEFINED__ WARN_DIGIT 31 __UNDEFINED__ WARN_PARENTHESIS 32 __UNDEFINED__ WARN_PRECEDENCE 33 __UNDEFINED__ WARN_PRINTF 34 __UNDEFINED__ WARN_PROTOTYPE 35 __UNDEFINED__ WARN_QW 36 __UNDEFINED__ WARN_RESERVED 37 __UNDEFINED__ WARN_SEMICOLON 38 __UNDEFINED__ WARN_TAINT 39 __UNDEFINED__ WARN_THREADS 40 __UNDEFINED__ WARN_UNINITIALIZED 41 __UNDEFINED__ WARN_UNPACK 42 __UNDEFINED__ WARN_UNTIE 43 __UNDEFINED__ WARN_UTF8 44 __UNDEFINED__ WARN_VOID 45 __UNDEFINED__ WARN_ASSERTIONS 46

__UNDEFINED__ packWARN(a) (a) __UNDEFINED__ packWARN2(a,b) (packWARN(a) << 8 | (b)) __UNDEFINED__ packWARN3(a,b,c) (packWARN2(a,b) << 8 | (c)) __UNDEFINED__ packWARN4(a,b,c,d) (packWARN3(a,b,c) << 8 | (d))

#ifndef ckWARN # ifdef G_WARN_ON # define ckWARN(a) (PL_dowarn & G_WARN_ON) # else # define ckWARN(a) PL_dowarn # endif #endif

__UNDEFINED__ ckWARN2(a,b) (ckWARN(a) || ckWARN(b)) __UNDEFINED__ ckWARN3(a,b,c) (ckWARN(c) || ckWARN2(a,b)) __UNDEFINED__ ckWARN4(a,b,c,d) (ckWARN(d) || ckWARN3(a,b,c))

#ifndef ckWARN_d # ifdef isLEXWARN_off # define ckWARN_d(a) (isLEXWARN_off || ckWARN(a)) # else # define ckWARN_d(a) 1 # endif #endif

__UNDEFINED__ ckWARN2_d(a,b) (ckWARN_d(a) || ckWARN_d(b)) __UNDEFINED__ ckWARN3_d(a,b,c) (ckWARN_d(c) || ckWARN2_d(a,b)) __UNDEFINED__ ckWARN4_d(a,b,c,d) (ckWARN_d(d) || ckWARN3_d(a,b,c))

__UNDEFINED__ vwarner(err, pat, argsp) \ STMT_START { SV *sv; \ PERL_UNUSED_ARG(err); \ sv = vnewSVpvf(pat, argsp); \ sv_2mortal(sv); \ warn("%s", SvPV_nolen(sv)); \ } STMT_END

#if { VERSION >= 5.004 } && !defined(warner) # if { NEED warner }

void warner(U32 err, const char *pat, ...) { va_list args; va_start(args, pat); vwarner(err, pat, &args); va_end(args); }

# define warner Perl_warner

# define Perl_warner_nocontext Perl_warner

# endif #endif

#if { VERSION >= 5.004 } && !defined(ck_warner) # if { NEED ck_warner }

void ck_warner(pTHX_ U32 err, const char *pat, ...) { va_list args;

    if (   ! ckWARN((err      ) & 0xFF)
        && ! ckWARN((err >>  8) & 0xFF)
        && ! ckWARN((err >> 16) & 0xFF)
        && ! ckWARN((err >> 24) & 0xFF))
    {
        return;
    }

    va_start(args, pat);
    vwarner(err, pat, &args);
    va_end(args);
}

# define ck_warner Perl_ck_warner # endif #endif

#if { VERSION >= 5.004 } && !defined(ck_warner_d) # if { NEED ck_warner_d }

void ck_warner_d(pTHX_ U32 err, const char *pat, ...) { va_list args;

    if (   ! ckWARN_d((err      ) & 0xFF)
        && ! ckWARN_d((err >>  8) & 0xFF)
        && ! ckWARN_d((err >> 16) & 0xFF)
        && ! ckWARN_d((err >> 24) & 0xFF))
    {
        return;
    }

    va_start(args, pat);
    vwarner(err, pat, &args);
    va_end(args);
}

# define ck_warner_d Perl_ck_warner_d

# endif #endif

#define NEED_warner #define NEED_ck_warner #define NEED_ck_warner_d

void warner() CODE: #if { VERSION >= 5.004 } warner(packWARN(WARN_MISC), "warner %s:%d", "bar", 42); #endif

void Perl_warner() CODE: #if { VERSION >= 5.004 } Perl_warner(aTHX_ packWARN(WARN_MISC), "Perl_warner %s:%d", "bar", 42); #endif

void Perl_ck_warner() CODE: #if { VERSION >= 5.004 } Perl_ck_warner(aTHX_ packWARN(WARN_MISC), "Perl_ck_warner %s:%d", "bar", 42); #endif

void Perl_ck_warner_d() CODE: #if { VERSION >= 5.004 } Perl_ck_warner_d(aTHX_ packWARN(WARN_MISC), "Perl_ck_warner_d %s:%d", "bar", 42); #endif

void Perl_warner_nocontext() CODE: #if { VERSION >= 5.004 } Perl_warner_nocontext(packWARN(WARN_MISC), "Perl_warner_nocontext %s:%d", "bar", 42); #endif

void ckWARN() CODE: #if { VERSION >= 5.004 } if (ckWARN(WARN_MISC)) Perl_warner_nocontext(packWARN(WARN_MISC), "ckWARN %s:%d", "bar", 42); #endif

void ckWARN_d() CODE: #if { VERSION >= 5.004 } if (ckWARN_d(WARN_MISC)) Perl_warner_nocontext(packWARN(WARN_MISC), "ckWARN_d %s:%d", "bar", 42); #endif

$^W = 0;

my $warning;

$SIG{'__WARN__'} = sub { $warning = $_[0] };

$warning = ''; Devel::PPPort::warner(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^warner bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::Perl_warner(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^Perl_warner bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::Perl_warner_nocontext(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^Perl_warner_nocontext bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::ckWARN(); is($warning, '');

$warning = ''; Devel::PPPort::ckWARN_d(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^ckWARN_d bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::Perl_ck_warner(); ok($warning eq '');

$warning = ''; Devel::PPPort::Perl_ck_warner_d(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^Perl_ck_warner_d bar:42/ : $warning eq '');

$^W = 1;

$warning = ''; Devel::PPPort::ckWARN(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^ckWARN bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::ckWARN_d(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^ckWARN_d bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::Perl_ck_warner(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^Perl_ck_warner bar:42/ : $warning eq '');

$warning = ''; Devel::PPPort::Perl_ck_warner_d(); ok(ivers($]) >= ivers("5.004") ? $warning =~ /^Perl_ck_warner_d bar:42/ : $warning eq '');

5 POD Errors

The following errors were encountered while parsing the POD:

Around line 12:

Unknown directive: =provides

Around line 25:

Unknown directive: =implementation

Around line 184:

Unknown directive: =xsinit

Around line 190:

Unknown directive: =xsubs

Around line 243:

Unknown directive: =tests