1 /* Test simple cases */ 2 #define VARIABLE_LIKE some_value 3 #define FUNCTION_LIKE(a,b) (a + b) 4 #pragma weak WeakSymbol = StrongSymbol 5 6 #define with_long_comment /* line 1 7 line 2 */ 8 9 /* Test usual case */ 10 #ifdef MY_MACRO 11 # define MACRO_TO_SEE1 1 12 int a; 13 #elif YOUR_MACRO 14 # define MACRO_TO_SEE2 2 15 int b; 16 #elif defined (THEIR_MACRO) 17 # define MACRO_TO_SEE3 3 18 int c; 19 #else 20 # define MACRO_TO_SEE4 4 21 int d; 22 #endif 23 24 /* Test commented-out case */ 25 #if 0 26 #define IGNORE_MACRO 27 int e; 28 # if 0 29 # define ANOTHER_IGNORE_MACRO 30 int f; 31 # else 32 # define YAIM 33 # endif 34 #else 35 # define SEE_THIS_MACRO 1 36 int g; 37 #endif 38 39 /* Test path selection algorithm */ 40 #ifdef OK 41 #define PATH1 foo1(void)42int foo1 (void) 43 { 44 #define z_this_branch_is_chosen 0 45 #elif defined (OK) 46 #define PATH2 47 int foo2 (void) 48 { 49 #else 50 #define PATH3 51 int foo3 (void) 52 { 53 #endif 54 } 55 56 int bar1 (void) 57 { 58 #ifdef OK 59 #define PATH1b 60 } 61 int p1; 62 #elif defined (OK) 63 #define PATH2b 64 } 65 int p2; 66 #else 67 #define PATH3b 68 } 69 int p3; 70 #endif 71 #undef MACRO_TO_SEE1 72 73