1/* n_11.t:  Operator "defined" in #if or #elif directive.   */
2
3#define MACRO_abc   abc
4#define MACRO_0     0
5#define ZERO_TOKEN
6
7/* 11.1:    */
8/*  abc;    */
9/*  abc;    */
10#if     defined a
11    a;
12#else
13    MACRO_abc;
14#endif
15#if     defined (MACRO_abc)
16    MACRO_abc;
17#else
18    0;
19#endif
20
21/* 11.2:    "defined" is an unary operator whose result is 1 or 0.  */
22#if     defined MACRO_0 * 3 != 3
23    Bad handling of "defined" operator.
24#endif
25#if     (!defined ZERO_TOKEN != 0) || (-defined ZERO_TOKEN != -1)
26    Bad grouping of "defined", !, - operator.
27#endif
28
29