xref: /openbsd-src/gnu/usr.bin/perl/warnings.h (revision b2ea75c1b17e1a9a339660e7ed45cd24946b230e)
1 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
2    This file is built by warnings.pl
3    Any changes made here will be lost!
4 */
5 
6 
7 #define Off(x)			((x) / 8)
8 #define Bit(x)			(1 << ((x) % 8))
9 #define IsSet(a, x)		((a)[Off(x)] & Bit(x))
10 
11 
12 #define G_WARN_OFF		0 	/* $^W == 0 */
13 #define G_WARN_ON		1	/* -w flag and $^W != 0 */
14 #define G_WARN_ALL_ON		2	/* -W flag */
15 #define G_WARN_ALL_OFF		4	/* -X flag */
16 #define G_WARN_ONCE		8	/* set if 'once' ever enabled */
17 #define G_WARN_ALL_MASK		(G_WARN_ALL_ON|G_WARN_ALL_OFF)
18 
19 #define pWARN_STD		Nullsv
20 #define pWARN_ALL		(Nullsv+1)	/* use warnings 'all' */
21 #define pWARN_NONE		(Nullsv+2)	/* no  warnings 'all' */
22 
23 #define specialWARN(x)		((x) == pWARN_STD || (x) == pWARN_ALL ||	\
24 				 (x) == pWARN_NONE)
25 #define WARN_ALL		0
26 #define WARN_CHMOD		1
27 #define WARN_CLOSURE		2
28 #define WARN_EXITING		3
29 #define WARN_GLOB		4
30 #define WARN_IO			5
31 #define WARN_CLOSED		6
32 #define WARN_EXEC		7
33 #define WARN_NEWLINE		8
34 #define WARN_PIPE		9
35 #define WARN_UNOPENED		10
36 #define WARN_MISC		11
37 #define WARN_NUMERIC		12
38 #define WARN_ONCE		13
39 #define WARN_OVERFLOW		14
40 #define WARN_PACK		15
41 #define WARN_PORTABLE		16
42 #define WARN_RECURSION		17
43 #define WARN_REDEFINE		18
44 #define WARN_REGEXP		19
45 #define WARN_SEVERE		20
46 #define WARN_DEBUGGING		21
47 #define WARN_INPLACE		22
48 #define WARN_INTERNAL		23
49 #define WARN_MALLOC		24
50 #define WARN_SIGNAL		25
51 #define WARN_SUBSTR		26
52 #define WARN_SYNTAX		27
53 #define WARN_AMBIGUOUS		28
54 #define WARN_BAREWORD		29
55 #define WARN_DEPRECATED		30
56 #define WARN_DIGIT		31
57 #define WARN_PARENTHESIS	32
58 #define WARN_PRECEDENCE		33
59 #define WARN_PRINTF		34
60 #define WARN_PROTOTYPE		35
61 #define WARN_QW			36
62 #define WARN_RESERVED		37
63 #define WARN_SEMICOLON		38
64 #define WARN_TAINT		39
65 #define WARN_UMASK		40
66 #define WARN_UNINITIALIZED	41
67 #define WARN_UNPACK		42
68 #define WARN_UNTIE		43
69 #define WARN_UTF8		44
70 #define WARN_VOID		45
71 #define WARN_Y2K		46
72 
73 #define WARNsize		12
74 #define WARN_ALLstring		"\125\125\125\125\125\125\125\125\125\125\125\125"
75 #define WARN_NONEstring		"\0\0\0\0\0\0\0\0\0\0\0\0"
76 
77 #define isLEXWARN_on 	(PL_curcop->cop_warnings != pWARN_STD)
78 #define isLEXWARN_off	(PL_curcop->cop_warnings == pWARN_STD)
79 #define isWARN_ONCE	(PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
80 #define isWARN_on(c,x)	(IsSet(SvPVX(c), 2*(x)))
81 #define isWARNf_on(c,x)	(IsSet(SvPVX(c), 2*(x)+1))
82 
83 #define ckDEAD(x)							\
84 	   ( ! specialWARN(PL_curcop->cop_warnings) &&			\
85 	    ( isWARNf_on(PL_curcop->cop_warnings, WARN_ALL) || 		\
86 	      isWARNf_on(PL_curcop->cop_warnings, x)))
87 
88 #define ckWARN(x)							\
89 	( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE &&	\
90 	      (PL_curcop->cop_warnings == pWARN_ALL ||			\
91 	       isWARN_on(PL_curcop->cop_warnings, x) ) )		\
92 	  || (isLEXWARN_off && PL_dowarn & G_WARN_ON) )
93 
94 #define ckWARN2(x,y)							\
95 	  ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE &&	\
96 	      (PL_curcop->cop_warnings == pWARN_ALL ||			\
97 	        isWARN_on(PL_curcop->cop_warnings, x)  ||		\
98 	        isWARN_on(PL_curcop->cop_warnings, y) ) ) 		\
99 	    ||	(isLEXWARN_off && PL_dowarn & G_WARN_ON) )
100 
101 #define ckWARN_d(x)							\
102 	  (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL ||	\
103 	     (PL_curcop->cop_warnings != pWARN_NONE &&			\
104 	      isWARN_on(PL_curcop->cop_warnings, x) ) )
105 
106 #define ckWARN2_d(x,y)							\
107 	  (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL ||	\
108 	     (PL_curcop->cop_warnings != pWARN_NONE &&			\
109 	        (isWARN_on(PL_curcop->cop_warnings, x)  ||		\
110 	         isWARN_on(PL_curcop->cop_warnings, y) ) ) )
111 
112 /* end of file warnings.h */
113 
114