1*fb3ef04dSDag-Erling Smørgrav/* Copyright 2004, 2008 Bob Proulx <bob@proulx.com> 2*fb3ef04dSDag-Erling SmørgravDistributed under the two-clause BSD licence; 3*fb3ef04dSDag-Erling Smørgravsee 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/* This code is passed through. "#if 0 else" */ 9*fb3ef04dSDag-Erling Smørgrav 10*fb3ef04dSDag-Erling Smørgrav/* This code is passed through. "#if 1 then" */ 11*fb3ef04dSDag-Erling Smørgrav 12*fb3ef04dSDag-Erling Smørgrav#if defined(FOO) || defined(FOOB) 13*fb3ef04dSDag-Erling Smørgravint foo1() { return 0; } 14*fb3ef04dSDag-Erling Smørgrav#else 15*fb3ef04dSDag-Erling Smørgrav#error FOO or FOOB not defined 16*fb3ef04dSDag-Erling Smørgrav#endif 17*fb3ef04dSDag-Erling Smørgrav 18*fb3ef04dSDag-Erling Smørgrav#if defined(FOOB) || defined(FOO) 19*fb3ef04dSDag-Erling Smørgravint foo2() { return 0; } 20*fb3ef04dSDag-Erling Smørgrav#else 21*fb3ef04dSDag-Erling Smørgrav#error FOO or FOOB not defined 22*fb3ef04dSDag-Erling Smørgrav#endif 23*fb3ef04dSDag-Erling Smørgrav 24*fb3ef04dSDag-Erling Smørgrav#if defined(FOO) && defined(FOOB) 25*fb3ef04dSDag-Erling Smørgravint foo3() { return 0; } 26*fb3ef04dSDag-Erling Smørgrav#else 27*fb3ef04dSDag-Erling Smørgrav#error FOO and FOOB not defined 28*fb3ef04dSDag-Erling Smørgrav#endif 29*fb3ef04dSDag-Erling Smørgrav 30*fb3ef04dSDag-Erling Smørgrav#if defined(FOOB) && defined(FOO) 31*fb3ef04dSDag-Erling Smørgravint foo4() { return 0; } 32*fb3ef04dSDag-Erling Smørgrav#else 33*fb3ef04dSDag-Erling Smørgrav#error FOO and FOOB not defined 34*fb3ef04dSDag-Erling Smørgrav#endif 35*fb3ef04dSDag-Erling Smørgrav 36*fb3ef04dSDag-Erling Smørgravint main() 37*fb3ef04dSDag-Erling Smørgrav{ 38*fb3ef04dSDag-Erling Smørgrav foo1(); 39*fb3ef04dSDag-Erling Smørgrav foo2(); 40*fb3ef04dSDag-Erling Smørgrav foo3(); 41*fb3ef04dSDag-Erling Smørgrav foo4(); 42*fb3ef04dSDag-Erling Smørgrav} 43