xref: /freebsd/contrib/unifdef/tests/if4-k.c (revision 4b9d605768acabc460aa6dcfe8a1f8db35b16794)
1 /* Copyright 2004, 2008 Bob Proulx <bob@proulx.com>
2 Distributed under the two-clause BSD licence;
3 see the COPYING file for details. */
4 
5 #include <stdio.h>
6 #include <stdlib.h>
7 
8 #if 0
9 /* This code is commented out. "#if 0 then" */
10 #else
11 /* This code is passed through. "#if 0 else" */
12 #endif
13 
14 #if 1
15 /* This code is passed through. "#if 1 then" */
16 #else
17 /* This code is passed through. "#if 1 else" */
18 #endif
19 
20 #if defined(FOO) || defined(FOOB)
21 int foo1() { return 0; }
22 #else
23 #error FOO or FOOB not defined
24 #endif
25 
26 #if defined(FOOB) || defined(FOO)
27 int foo2() { return 0; }
28 #else
29 #error FOO or FOOB not defined
30 #endif
31 
32 #if defined(FOO) && defined(FOOB)
33 int foo3() { return 0; }
34 #else
35 #error FOO and FOOB not defined
36 #endif
37 
38 #if defined(FOOB) && defined(FOO)
39 int foo4() { return 0; }
40 #else
41 #error FOO and FOOB not defined
42 #endif
43 
44 int main()
45 {
46   foo1();
47   foo2();
48   foo3();
49   foo4();
50 }
51