annotate gcc/testsuite/gcc.dg/cpp/trad/defined.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 /* Copyright (C) 2000 Free Software Foundation, Inc. */
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 /* { dg-do preprocess } */
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 /* Tests tradcpp0 with defined. The defined operator in traditional C
kono
parents:
diff changeset
6 works just the same as the defined operator in Standard C. */
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 /* Source: Zack Weinberg, glibc, Neil Booth 11 Dec 2000. */
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 #if defined REGPARMS
kono
parents:
diff changeset
11 #error REGPARMS should not be defined
kono
parents:
diff changeset
12 #endif
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 #define REGPARMS 1
kono
parents:
diff changeset
15 #if !defined REGPARMS
kono
parents:
diff changeset
16 #error REGPARMS should be defined
kono
parents:
diff changeset
17 #endif
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 #define defined /* { dg-error "defined" } */
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 /* No diagnostics, though you could argue there should be. */
kono
parents:
diff changeset
22 #if defined defined
kono
parents:
diff changeset
23 #error defined is defined!
kono
parents:
diff changeset
24 #endif
kono
parents:
diff changeset
25
kono
parents:
diff changeset
26 #define is_Z_defined defined Z
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 #if defined Z
kono
parents:
diff changeset
29 #error Z is not defined
kono
parents:
diff changeset
30 #endif
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 /* The behavior of "defined" when it comes from a macro expansion is
kono
parents:
diff changeset
33 now documented. */
kono
parents:
diff changeset
34 #if is_Z_defined
kono
parents:
diff changeset
35 #error Macro expanding into defined operator test 1
kono
parents:
diff changeset
36 #endif
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 #define Z
kono
parents:
diff changeset
39
kono
parents:
diff changeset
40 #if !defined Z
kono
parents:
diff changeset
41 #error Z is defined
kono
parents:
diff changeset
42 #endif
kono
parents:
diff changeset
43
kono
parents:
diff changeset
44 #if !is_Z_defined
kono
parents:
diff changeset
45 #error Macro expanding into defined operator test 2
kono
parents:
diff changeset
46 #endif
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 #undef is_Z_defined
kono
parents:
diff changeset
49 #undef Z
kono
parents:
diff changeset
50
kono
parents:
diff changeset
51 /* Do all the tests over again with the () form of defined. */
kono
parents:
diff changeset
52
kono
parents:
diff changeset
53 /* No diagnostics, though you could argue there should be. */
kono
parents:
diff changeset
54 #if defined(defined)
kono
parents:
diff changeset
55 #error defined is defined!
kono
parents:
diff changeset
56 #endif
kono
parents:
diff changeset
57
kono
parents:
diff changeset
58 #define is_Z_defined defined ( Z )
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 #if defined(Z)
kono
parents:
diff changeset
61 #error Z is not defined
kono
parents:
diff changeset
62 #endif
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 /* The behavior of "defined" when it comes from a macro expansion is
kono
parents:
diff changeset
65 now documented. */
kono
parents:
diff changeset
66 #if is_Z_defined
kono
parents:
diff changeset
67 #error Macro expanding into defined operator test 1
kono
parents:
diff changeset
68 #endif
kono
parents:
diff changeset
69
kono
parents:
diff changeset
70 #define Z
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 #if !defined(Z)
kono
parents:
diff changeset
73 #error Z is defined
kono
parents:
diff changeset
74 #endif
kono
parents:
diff changeset
75
kono
parents:
diff changeset
76 #if !is_Z_defined
kono
parents:
diff changeset
77 #error Macro expanding into defined operator test 2
kono
parents:
diff changeset
78 #endif