xref: /freebsd/contrib/unifdef/tests/if5.c (revision fb3ef04d2028110f06d68b09009f1f2ca0f4128e)
1*fb3ef04dSDag-Erling Smørgrav /* Copyright 2004 Bob Proulx <bob@proulx.com>
2*fb3ef04dSDag-Erling Smørgrav Distributed under the two-clause BSD licence;
3*fb3ef04dSDag-Erling Smørgrav see the COPYING file for details. */
4*fb3ef04dSDag-Erling Smørgrav 
5*fb3ef04dSDag-Erling Smørgrav #include <stdio.h>
6*fb3ef04dSDag-Erling Smørgrav #include <stdlib.h>
7*fb3ef04dSDag-Erling Smørgrav 
8*fb3ef04dSDag-Erling Smørgrav #if FOOB == 42
foo1()9*fb3ef04dSDag-Erling Smørgrav int foo1() { return 0; }
10*fb3ef04dSDag-Erling Smørgrav #else
11*fb3ef04dSDag-Erling Smørgrav #error FOOB not 42
12*fb3ef04dSDag-Erling Smørgrav #endif
13*fb3ef04dSDag-Erling Smørgrav 
14*fb3ef04dSDag-Erling Smørgrav #if FOOB != 42
15*fb3ef04dSDag-Erling Smørgrav #error FOO is 2
16*fb3ef04dSDag-Erling Smørgrav #else
foo2()17*fb3ef04dSDag-Erling Smørgrav int foo2() { return 0; }
18*fb3ef04dSDag-Erling Smørgrav #endif
19*fb3ef04dSDag-Erling Smørgrav 
20*fb3ef04dSDag-Erling Smørgrav #if FOOB == 42 || FOO == 1
foo3()21*fb3ef04dSDag-Erling Smørgrav int foo3() { return 0; }
22*fb3ef04dSDag-Erling Smørgrav #else
23*fb3ef04dSDag-Erling Smørgrav #error FOO not 1 or BAR not 1
24*fb3ef04dSDag-Erling Smørgrav #endif
25*fb3ef04dSDag-Erling Smørgrav 
26*fb3ef04dSDag-Erling Smørgrav #if FOOB != 42 && FOO != 1
27*fb3ef04dSDag-Erling Smørgrav #error FOOB not 42 and FOO not 1
28*fb3ef04dSDag-Erling Smørgrav #else
foo4()29*fb3ef04dSDag-Erling Smørgrav int foo4() { return 0; }
30*fb3ef04dSDag-Erling Smørgrav #endif
31*fb3ef04dSDag-Erling Smørgrav 
32*fb3ef04dSDag-Erling Smørgrav #if FOOB == 42 || FOO != 1
foo5()33*fb3ef04dSDag-Erling Smørgrav int foo5() { return 0; }
34*fb3ef04dSDag-Erling Smørgrav #else
35*fb3ef04dSDag-Erling Smørgrav #error FOOB is 42 or FOO is not 1
36*fb3ef04dSDag-Erling Smørgrav #endif
37*fb3ef04dSDag-Erling Smørgrav 
38*fb3ef04dSDag-Erling Smørgrav #if FOO != 1 || FOOB != 42
39*fb3ef04dSDag-Erling Smørgrav #error FOO is 1 or FOOB is 42
40*fb3ef04dSDag-Erling Smørgrav #else
foo6()41*fb3ef04dSDag-Erling Smørgrav int foo6() { return 0; }
42*fb3ef04dSDag-Erling Smørgrav #endif
43*fb3ef04dSDag-Erling Smørgrav 
44*fb3ef04dSDag-Erling Smørgrav #if FOO > FOOB
45*fb3ef04dSDag-Erling Smørgrav #error FOO is greater than FOOB
46*fb3ef04dSDag-Erling Smørgrav #else
foo7()47*fb3ef04dSDag-Erling Smørgrav int foo7() { return 0; }
48*fb3ef04dSDag-Erling Smørgrav #endif
49*fb3ef04dSDag-Erling Smørgrav 
50*fb3ef04dSDag-Erling Smørgrav #if FOOB < FOO
51*fb3ef04dSDag-Erling Smørgrav #error FOOB is less than FOO
52*fb3ef04dSDag-Erling Smørgrav #else
foo8()53*fb3ef04dSDag-Erling Smørgrav int foo8() { return 0; }
54*fb3ef04dSDag-Erling Smørgrav #endif
55*fb3ef04dSDag-Erling Smørgrav 
56*fb3ef04dSDag-Erling Smørgrav #if FOO >= FOOB
57*fb3ef04dSDag-Erling Smørgrav #error FOO is greater than or equal FOOB
58*fb3ef04dSDag-Erling Smørgrav #else
foo9()59*fb3ef04dSDag-Erling Smørgrav int foo9() { return 0; }
60*fb3ef04dSDag-Erling Smørgrav #endif
61*fb3ef04dSDag-Erling Smørgrav 
62*fb3ef04dSDag-Erling Smørgrav #if FOOB <= FOO
63*fb3ef04dSDag-Erling Smørgrav #error FOOB is less than or equal FOO
64*fb3ef04dSDag-Erling Smørgrav #else
foo10()65*fb3ef04dSDag-Erling Smørgrav int foo10() { return 0; }
66*fb3ef04dSDag-Erling Smørgrav #endif
67*fb3ef04dSDag-Erling Smørgrav 
main()68*fb3ef04dSDag-Erling Smørgrav int main()
69*fb3ef04dSDag-Erling Smørgrav {
70*fb3ef04dSDag-Erling Smørgrav   foo1();
71*fb3ef04dSDag-Erling Smørgrav   foo2();
72*fb3ef04dSDag-Erling Smørgrav   foo3();
73*fb3ef04dSDag-Erling Smørgrav   foo4();
74*fb3ef04dSDag-Erling Smørgrav   foo5();
75*fb3ef04dSDag-Erling Smørgrav   foo6();
76*fb3ef04dSDag-Erling Smørgrav   foo7();
77*fb3ef04dSDag-Erling Smørgrav   foo8();
78*fb3ef04dSDag-Erling Smørgrav   foo9();
79*fb3ef04dSDag-Erling Smørgrav   foo10();
80*fb3ef04dSDag-Erling Smørgrav }
81