1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
|
/* -*- mode: C; buffer-read-only: t -*-
!!!!!!! DO NOT EDIT THIS FILE !!!!!!!
This file is built by regen/warnings.pl.
Any changes made here will be lost!
*/
#define Perl_Warn_Off_(x) ((x) / 8)
#define Perl_Warn_Bit_(x) (1 << ((x) % 8))
#define PerlWarnIsSet_(a, x) ((a)[Perl_Warn_Off_(x)] & Perl_Warn_Bit_(x))
#define G_WARN_OFF 0 /* $^W == 0 */
#define G_WARN_ON 1 /* -w flag and $^W != 0 */
#define G_WARN_ALL_ON 2 /* -W flag */
#define G_WARN_ALL_OFF 4 /* -X flag */
#define G_WARN_ONCE 8 /* set if 'once' ever enabled */
#define G_WARN_ALL_MASK (G_WARN_ALL_ON|G_WARN_ALL_OFF)
#define pWARN_STD NULL
#define pWARN_ALL &PL_WARN_ALL /* use warnings 'all' */
#define pWARN_NONE &PL_WARN_NONE /* no warnings 'all' */
#define specialWARN(x) ((x) == pWARN_STD || (x) == pWARN_ALL || \
(x) == pWARN_NONE)
/* if PL_warnhook is set to this value, then warnings die */
#define PERL_WARNHOOK_FATAL (&PL_sv_placeholder)
/* Warnings Categories added in Perl 5.008 */
#define WARN_ALL 0
#define WARN_CLOSURE 1
#define WARN_DEPRECATED 2
#define WARN_EXITING 3
#define WARN_GLOB 4
#define WARN_IO 5
#define WARN_CLOSED 6
#define WARN_EXEC 7
#define WARN_LAYER 8
#define WARN_NEWLINE 9
#define WARN_PIPE 10
#define WARN_UNOPENED 11
#define WARN_MISC 12
#define WARN_NUMERIC 13
#define WARN_ONCE 14
#define WARN_OVERFLOW 15
#define WARN_PACK 16
#define WARN_PORTABLE 17
#define WARN_RECURSION 18
#define WARN_REDEFINE 19
#define WARN_REGEXP 20
#define WARN_SEVERE 21
#define WARN_DEBUGGING 22
#define WARN_INPLACE 23
#define WARN_INTERNAL 24
#define WARN_MALLOC 25
#define WARN_SIGNAL 26
#define WARN_SUBSTR 27
#define WARN_SYNTAX 28
#define WARN_AMBIGUOUS 29
#define WARN_BAREWORD 30
#define WARN_DIGIT 31
#define WARN_PARENTHESIS 32
#define WARN_PRECEDENCE 33
#define WARN_PRINTF 34
#define WARN_PROTOTYPE 35
#define WARN_QW 36
#define WARN_RESERVED 37
#define WARN_SEMICOLON 38
#define WARN_TAINT 39
#define WARN_THREADS 40
#define WARN_UNINITIALIZED 41
#define WARN_UNPACK 42
#define WARN_UNTIE 43
#define WARN_UTF8 44
#define WARN_VOID 45
/* Warnings Categories added in Perl 5.011 */
#define WARN_IMPRECISION 46
#define WARN_ILLEGALPROTO 47
/* Warnings Categories added in Perl 5.011003 */
#define WARN_DEPRECATED__GOTO_CONSTRUCT 48
#define WARN_DEPRECATED__UNICODE_PROPERTY_NAME 49
/* Warnings Categories added in Perl 5.013 */
#define WARN_NON_UNICODE 50
#define WARN_NONCHAR 51
#define WARN_SURROGATE 52
/* Warnings Categories added in Perl 5.017 */
#define WARN_EXPERIMENTAL 53
#define WARN_EXPERIMENTAL__REGEX_SETS 54
/* Warnings Categories added in Perl 5.019 */
#define WARN_SYSCALLS 55
/* Warnings Categories added in Perl 5.021 */
#define WARN_EXPERIMENTAL__RE_STRICT 56
#define WARN_EXPERIMENTAL__REFALIASING 57
#define WARN_LOCALE 58
#define WARN_MISSING 59
#define WARN_REDUNDANT 60
/* Warnings Categories added in Perl 5.025 */
#define WARN_EXPERIMENTAL__DECLARED_REFS 61
/* Warnings Categories added in Perl 5.025011 */
#define WARN_DEPRECATED__DOT_IN_INC 62
/* Warnings Categories added in Perl 5.027 */
#define WARN_SHADOW 63
/* Warnings Categories added in Perl 5.029 */
#define WARN_EXPERIMENTAL__PRIVATE_USE 64
#define WARN_EXPERIMENTAL__UNIPROP_WILDCARDS 65
#define WARN_EXPERIMENTAL__VLB 66
/* Warnings Categories added in Perl 5.033 */
#define WARN_EXPERIMENTAL__TRY 67
/* Warnings Categories added in Perl 5.035 */
#define WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES 68
#define WARN_EXPERIMENTAL__BUILTIN 69
#define WARN_EXPERIMENTAL__DEFER 70
#define WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS 71
#define WARN_SCALAR 72
/* Warnings Categories added in Perl 5.035009 */
#define WARN_DEPRECATED__VERSION_DOWNGRADE 73
/* Warnings Categories added in Perl 5.03501 */
#define WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED 74
/* Warnings Categories added in Perl 5.037 */
#define WARN_EXPERIMENTAL__CLASS 75
/* Warnings Categories added in Perl 5.039002 */
#define WARN_DEPRECATED__MISSING_IMPORT_CALLED_WITH_ARGS 76
/* Warnings Categories added in Perl 5.039008 */
#define WARN_DEPRECATED__SUBSEQUENT_USE_VERSION 77
/* Warnings Categories added in Perl 5.041 */
#define WARN_EXPERIMENTAL__KEYWORD_ALL 78
#define WARN_EXPERIMENTAL__KEYWORD_ANY 79
#define WARNsize 20
#define WARN_ALLstring "\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125\125"
#define WARN_NONEstring "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
#define isLEXWARN_on \
cBOOL(PL_curcop && PL_curcop->cop_warnings != pWARN_STD)
#define isLEXWARN_off \
cBOOL(!PL_curcop || PL_curcop->cop_warnings == pWARN_STD)
#define isWARN_ONCE (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
#define hasWARNBIT(c,x) (RCPV_LEN(c) > (2*(x)/8))
#define isWARN_on(c,x) (hasWARNBIT(c,x) \
? PerlWarnIsSet_((U8 *)(c), 2*(x)) \
: 0)
#define isWARNf_on(c,x) (hasWARNBIT(c,x) \
? PerlWarnIsSet_((U8 *)(c), 2*(x)+1) \
: 0)
#define DUP_WARNINGS(p) Perl_dup_warnings(aTHX_ p)
#define free_and_set_cop_warnings(cmp,w) STMT_START { \
if (!specialWARN((cmp)->cop_warnings)) rcpv_free((cmp)->cop_warnings); \
(cmp)->cop_warnings = w; \
} STMT_END
/*
=head1 Warning and Dieing
In all these calls, the C<U32 wI<n>> parameters are warning category
constants. You can see the ones currently available in
L<warnings/Category Hierarchy>, just capitalize all letters in the names
and prefix them by C<WARN_>. So, for example, the category C<void> used in a
perl program becomes C<WARN_VOID> when used in XS code and passed to one of
the calls below.
=for apidoc Am|bool|ckWARN|U32 w
=for apidoc_item ||ckWARN2|U32 w1|U32 w2
=for apidoc_item ||ckWARN3|U32 w1|U32 w2|U32 w3
=for apidoc_item ||ckWARN4|U32 w1|U32 w2|U32 w3|U32 w4
These return a boolean as to whether or not warnings are enabled for any of
the warning category(ies) parameters: C<w>, C<w1>, ....
Should any of the categories by default be enabled even if not within the
scope of S<C<use warnings>>, instead use the C<L</ckWARN_d>> macros.
The categories must be completely independent, one may not be subclassed from
the other.
=for apidoc Am|bool|ckWARN_d|U32 w
=for apidoc_item ||ckWARN2_d|U32 w1|U32 w2
=for apidoc_item ||ckWARN3_d|U32 w1|U32 w2|U32 w3
=for apidoc_item ||ckWARN4_d|U32 w1|U32 w2|U32 w3|U32 w4
Like C<L</ckWARN>>, but for use if and only if the warning category(ies) is by
default enabled even if not within the scope of S<C<use warnings>>.
=for apidoc Am|U32|packWARN|U32 w1
=for apidoc_item ||packWARN2|U32 w1|U32 w2
=for apidoc_item ||packWARN3|U32 w1|U32 w2|U32 w3
=for apidoc_item ||packWARN4|U32 w1|U32 w2|U32 w3|U32 w4
These macros are used to pack warning categories into a single U32 to pass to
macros and functions that take a warning category parameter. The number of
categories to pack is given by the name, with a corresponding number of
category parameters passed.
=cut
*/
#define ckWARN(w) Perl_ckwarn(aTHX_ packWARN(w))
/* The w1, w2 ... should be independent warnings categories; one shouldn't be
* a subcategory of any other */
#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 WARNshift 8
#define packWARN(a) (a )
/* The a, b, ... should be independent warnings categories; one shouldn't be
* a subcategory of any other */
#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) ((U8) (x) )
#define unpackWARN2(x) ((U8) ((x) >> 8))
#define unpackWARN3(x) ((U8) ((x) >> 16))
#define unpackWARN4(x) ((U8) ((x) >> 24))
#define ckDEAD(x) \
(PL_curcop && \
!specialWARN(PL_curcop->cop_warnings) && \
(isWARNf_on(PL_curcop->cop_warnings, unpackWARN1(x)) || \
(unpackWARN2(x) && \
(isWARNf_on(PL_curcop->cop_warnings, unpackWARN2(x)) || \
(unpackWARN3(x) && \
(isWARNf_on(PL_curcop->cop_warnings, unpackWARN3(x)) || \
(unpackWARN4(x) && \
isWARNf_on(PL_curcop->cop_warnings, unpackWARN4(x)))))))))
/*
=for apidoc Amnh||WARN_ALL
=for apidoc Amnh||WARN_CLOSURE
=for apidoc Amnh||WARN_DEPRECATED
=for apidoc Amnh||WARN_EXITING
=for apidoc Amnh||WARN_GLOB
=for apidoc Amnh||WARN_IO
=for apidoc Amnh||WARN_CLOSED
=for apidoc Amnh||WARN_EXEC
=for apidoc Amnh||WARN_LAYER
=for apidoc Amnh||WARN_NEWLINE
=for apidoc Amnh||WARN_PIPE
=for apidoc Amnh||WARN_UNOPENED
=for apidoc Amnh||WARN_MISC
=for apidoc Amnh||WARN_NUMERIC
=for apidoc Amnh||WARN_ONCE
=for apidoc Amnh||WARN_OVERFLOW
=for apidoc Amnh||WARN_PACK
=for apidoc Amnh||WARN_PORTABLE
=for apidoc Amnh||WARN_RECURSION
=for apidoc Amnh||WARN_REDEFINE
=for apidoc Amnh||WARN_REGEXP
=for apidoc Amnh||WARN_SEVERE
=for apidoc Amnh||WARN_DEBUGGING
=for apidoc Amnh||WARN_INPLACE
=for apidoc Amnh||WARN_INTERNAL
=for apidoc Amnh||WARN_MALLOC
=for apidoc Amnh||WARN_SIGNAL
=for apidoc Amnh||WARN_SUBSTR
=for apidoc Amnh||WARN_SYNTAX
=for apidoc Amnh||WARN_AMBIGUOUS
=for apidoc Amnh||WARN_BAREWORD
=for apidoc Amnh||WARN_DIGIT
=for apidoc Amnh||WARN_PARENTHESIS
=for apidoc Amnh||WARN_PRECEDENCE
=for apidoc Amnh||WARN_PRINTF
=for apidoc Amnh||WARN_PROTOTYPE
=for apidoc Amnh||WARN_QW
=for apidoc Amnh||WARN_RESERVED
=for apidoc Amnh||WARN_SEMICOLON
=for apidoc Amnh||WARN_TAINT
=for apidoc Amnh||WARN_THREADS
=for apidoc Amnh||WARN_UNINITIALIZED
=for apidoc Amnh||WARN_UNPACK
=for apidoc Amnh||WARN_UNTIE
=for apidoc Amnh||WARN_UTF8
=for apidoc Amnh||WARN_VOID
=for apidoc Amnh||WARN_IMPRECISION
=for apidoc Amnh||WARN_ILLEGALPROTO
=for apidoc Amnh||WARN_DEPRECATED__GOTO_CONSTRUCT
=for apidoc Amnh||WARN_DEPRECATED__UNICODE_PROPERTY_NAME
=for apidoc Amnh||WARN_NON_UNICODE
=for apidoc Amnh||WARN_NONCHAR
=for apidoc Amnh||WARN_SURROGATE
=for apidoc Amnh||WARN_EXPERIMENTAL
=for apidoc Amnh||WARN_EXPERIMENTAL__REGEX_SETS
=for apidoc Amnh||WARN_SYSCALLS
=for apidoc Amnh||WARN_EXPERIMENTAL__RE_STRICT
=for apidoc Amnh||WARN_EXPERIMENTAL__REFALIASING
=for apidoc Amnh||WARN_LOCALE
=for apidoc Amnh||WARN_MISSING
=for apidoc Amnh||WARN_REDUNDANT
=for apidoc Amnh||WARN_EXPERIMENTAL__DECLARED_REFS
=for apidoc Amnh||WARN_DEPRECATED__DOT_IN_INC
=for apidoc Amnh||WARN_SHADOW
=for apidoc Amnh||WARN_EXPERIMENTAL__PRIVATE_USE
=for apidoc Amnh||WARN_EXPERIMENTAL__UNIPROP_WILDCARDS
=for apidoc Amnh||WARN_EXPERIMENTAL__VLB
=for apidoc Amnh||WARN_EXPERIMENTAL__TRY
=for apidoc Amnh||WARN_EXPERIMENTAL__ARGS_ARRAY_WITH_SIGNATURES
=for apidoc Amnh||WARN_EXPERIMENTAL__BUILTIN
=for apidoc Amnh||WARN_EXPERIMENTAL__DEFER
=for apidoc Amnh||WARN_EXPERIMENTAL__EXTRA_PAIRED_DELIMITERS
=for apidoc Amnh||WARN_SCALAR
=for apidoc Amnh||WARN_DEPRECATED__VERSION_DOWNGRADE
=for apidoc Amnh||WARN_DEPRECATED__DELIMITER_WILL_BE_PAIRED
=for apidoc Amnh||WARN_EXPERIMENTAL__CLASS
=for apidoc Amnh||WARN_DEPRECATED__MISSING_IMPORT_CALLED_WITH_ARGS
=for apidoc Amnh||WARN_DEPRECATED__SUBSEQUENT_USE_VERSION
=for apidoc Amnh||WARN_EXPERIMENTAL__KEYWORD_ALL
=for apidoc Amnh||WARN_EXPERIMENTAL__KEYWORD_ANY
=cut
*/
/* end of file warnings.h */
/* ex: set ro ft=c: */
|