1/* Copyright 2004, 2008 Bob Proulx <bob@proulx.com> 2Distributed under the two-clause BSD licence; 3see 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 FOOB == 42 21int foo1() { return 0; } 22#else 23#error FOOB not 42 24#endif 25 26#if FOOB != 42 27#error FOO is 2 28#else 29int foo2() { return 0; } 30#endif 31 32#if FOOB == 42 || FOO == 1 33intx foo3() { return 0; } 34#else 35#error FOO not 1 or BAR not 1 36#endif 37 38#if FOOB != 42 && FOO != 1 39#error FOOB not 42 and FOO not 1 40#else 41int foo4() { return 0; } 42#endif 43 44#if FOOB == 42 || FOO != 1 45int foo5() { return 0; } 46#else 47#error FOOB is 42 or FOO is not 1 48#endif 49 50#if FOO != 1 || FOOB != 42 51#error FOO is 1 or FOOB is 42 52#else 53int foo6() { return 0; } 54#endif 55 56int main() 57{ 58 foo1(); 59 foo2(); 60 foo3(); 61 foo4(); 62 foo5(); 63 foo6(); 64} 65