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 FOOB == 42 13*fb3ef04dSDag-Erling Smørgravint foo1() { return 0; } 14*fb3ef04dSDag-Erling Smørgrav#else 15*fb3ef04dSDag-Erling Smørgrav#error FOOB not 42 16*fb3ef04dSDag-Erling Smørgrav#endif 17*fb3ef04dSDag-Erling Smørgrav 18*fb3ef04dSDag-Erling Smørgrav#if FOOB != 42 19*fb3ef04dSDag-Erling Smørgrav#error FOO is 2 20*fb3ef04dSDag-Erling Smørgrav#else 21*fb3ef04dSDag-Erling Smørgravint foo2() { return 0; } 22*fb3ef04dSDag-Erling Smørgrav#endif 23*fb3ef04dSDag-Erling Smørgrav 24*fb3ef04dSDag-Erling Smørgrav#if FOOB == 42 || FOO == 1 25*fb3ef04dSDag-Erling Smørgravintx foo3() { return 0; } 26*fb3ef04dSDag-Erling Smørgrav#else 27*fb3ef04dSDag-Erling Smørgrav#error FOO not 1 or BAR not 1 28*fb3ef04dSDag-Erling Smørgrav#endif 29*fb3ef04dSDag-Erling Smørgrav 30*fb3ef04dSDag-Erling Smørgrav#if FOOB != 42 && FOO != 1 31*fb3ef04dSDag-Erling Smørgrav#error FOOB not 42 and FOO not 1 32*fb3ef04dSDag-Erling Smørgrav#else 33*fb3ef04dSDag-Erling Smørgravint foo4() { return 0; } 34*fb3ef04dSDag-Erling Smørgrav#endif 35*fb3ef04dSDag-Erling Smørgrav 36*fb3ef04dSDag-Erling Smørgrav#if FOOB == 42 || FOO != 1 37*fb3ef04dSDag-Erling Smørgravint foo5() { return 0; } 38*fb3ef04dSDag-Erling Smørgrav#else 39*fb3ef04dSDag-Erling Smørgrav#error FOOB is 42 or FOO is not 1 40*fb3ef04dSDag-Erling Smørgrav#endif 41*fb3ef04dSDag-Erling Smørgrav 42*fb3ef04dSDag-Erling Smørgrav#if FOO != 1 || FOOB != 42 43*fb3ef04dSDag-Erling Smørgrav#error FOO is 1 or FOOB is 42 44*fb3ef04dSDag-Erling Smørgrav#else 45*fb3ef04dSDag-Erling Smørgravint foo6() { return 0; } 46*fb3ef04dSDag-Erling Smørgrav#endif 47*fb3ef04dSDag-Erling Smørgrav 48*fb3ef04dSDag-Erling Smørgravint main() 49*fb3ef04dSDag-Erling Smørgrav{ 50*fb3ef04dSDag-Erling Smørgrav foo1(); 51*fb3ef04dSDag-Erling Smørgrav foo2(); 52*fb3ef04dSDag-Erling Smørgrav foo3(); 53*fb3ef04dSDag-Erling Smørgrav foo4(); 54*fb3ef04dSDag-Erling Smørgrav foo5(); 55*fb3ef04dSDag-Erling Smørgrav foo6(); 56*fb3ef04dSDag-Erling Smørgrav} 57