X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=warnings.h;h=27e240e9d56b711f405f5d07e216520a57e7cd4c;hb=28a5cf3b760f8b6322a0839e3b3e060e7a6f23ea;hp=178d1cf25c1263f27e7baf1544fcb6f812123156;hpb=37442d52629699d89ef62d315d35efbc0facec21;p=p5sagit%2Fp5-mst-13.2.git diff --git a/warnings.h b/warnings.h index 178d1cf..27e240e 100644 --- a/warnings.h +++ b/warnings.h @@ -85,69 +85,23 @@ #define isLEXWARN_on (PL_curcop->cop_warnings != pWARN_STD) #define isLEXWARN_off (PL_curcop->cop_warnings == pWARN_STD) #define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE)) -#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x))) -#define isWARNf_on(c,x) (IsSet(SvPVX(c), 2*(x)+1)) - -#define ckWARN(x) \ - ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE && \ - (PL_curcop->cop_warnings == pWARN_ALL || \ - isWARN_on(PL_curcop->cop_warnings, x) ) ) \ - || (isLEXWARN_off && PL_dowarn & G_WARN_ON) ) - -#define ckWARN2(x,y) \ - ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE && \ - (PL_curcop->cop_warnings == pWARN_ALL || \ - isWARN_on(PL_curcop->cop_warnings, x) || \ - isWARN_on(PL_curcop->cop_warnings, y) ) ) \ - || (isLEXWARN_off && PL_dowarn & G_WARN_ON) ) - -#define ckWARN3(x,y,z) \ - ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE && \ - (PL_curcop->cop_warnings == pWARN_ALL || \ - isWARN_on(PL_curcop->cop_warnings, x) || \ - isWARN_on(PL_curcop->cop_warnings, y) || \ - isWARN_on(PL_curcop->cop_warnings, z) ) ) \ - || (isLEXWARN_off && PL_dowarn & G_WARN_ON) ) - -#define ckWARN4(x,y,z,t) \ - ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE && \ - (PL_curcop->cop_warnings == pWARN_ALL || \ - isWARN_on(PL_curcop->cop_warnings, x) || \ - isWARN_on(PL_curcop->cop_warnings, y) || \ - isWARN_on(PL_curcop->cop_warnings, z) || \ - isWARN_on(PL_curcop->cop_warnings, t) ) ) \ - || (isLEXWARN_off && PL_dowarn & G_WARN_ON) ) - -#define ckWARN_d(x) \ - (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL || \ - (PL_curcop->cop_warnings != pWARN_NONE && \ - isWARN_on(PL_curcop->cop_warnings, x) ) ) - -#define ckWARN2_d(x,y) \ - (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL || \ - (PL_curcop->cop_warnings != pWARN_NONE && \ - (isWARN_on(PL_curcop->cop_warnings, x) || \ - isWARN_on(PL_curcop->cop_warnings, y) ) ) ) - -#define ckWARN3_d(x,y,z) \ - (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL || \ - (PL_curcop->cop_warnings != pWARN_NONE && \ - (isWARN_on(PL_curcop->cop_warnings, x) || \ - isWARN_on(PL_curcop->cop_warnings, y) || \ - isWARN_on(PL_curcop->cop_warnings, z) ) ) ) - -#define ckWARN4_d(x,y,z,t) \ - (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL || \ - (PL_curcop->cop_warnings != pWARN_NONE && \ - (isWARN_on(PL_curcop->cop_warnings, x) || \ - isWARN_on(PL_curcop->cop_warnings, y) || \ - isWARN_on(PL_curcop->cop_warnings, z) || \ - isWARN_on(PL_curcop->cop_warnings, t) ) ) ) - -#define packWARN(a) (a ) -#define packWARN2(a,b) ((a) | (b)<<8 ) -#define packWARN3(a,b,c) ((a) | (b)<<8 | (c) <<16 ) -#define packWARN4(a,b,c,d) ((a) | (b)<<8 | (c) <<16 | (d) <<24) +#define isWARN_on(c,x) (IsSet(SvPVX_const(c), 2*(x))) +#define isWARNf_on(c,x) (IsSet(SvPVX_const(c), 2*(x)+1)) + +#define ckWARN(w) Perl_ckwarn(aTHX_ packWARN(w)) +#define ckWARN2(w1,w2) Perl_ckwarn(aTHX_ packWARN2(w1,w2)) +#define ckWARN3(w1,w2,w3) Perl_ckwarn(aTHX_ packWARN3(w1,w2,w3)) +#define ckWARN4(w1,w2,w3,w4) Perl_ckwarn(aTHX_ packWARN4(w1,w2,w3,w4)) + +#define ckWARN_d(w) Perl_ckwarn_d(aTHX_ packWARN(w)) +#define ckWARN2_d(w1,w2) Perl_ckwarn_d(aTHX_ packWARN2(w1,w2)) +#define ckWARN3_d(w1,w2,w3) Perl_ckwarn_d(aTHX_ packWARN3(w1,w2,w3)) +#define ckWARN4_d(w1,w2,w3,w4) Perl_ckwarn_d(aTHX_ packWARN4(w1,w2,w3,w4)) + +#define packWARN(a) (a ) +#define packWARN2(a,b) ((a) | ((b)<<8) ) +#define packWARN3(a,b,c) ((a) | ((b)<<8) | ((c)<<16) ) +#define packWARN4(a,b,c,d) ((a) | ((b)<<8) | ((c)<<16) | ((d) <<24)) #define unpackWARN1(x) ((x) & 0xFF) #define unpackWARN2(x) (((x) >>8) & 0xFF)