| #ifdef DEF_MACROS | |
| #ifdef ONE | |
| #ifdef FOO | |
| #undef FOO | |
| #endif | |
| #define FOO "hello" | |
| #else | |
| #undef FOO | |
| #endif | |
| #ifdef TWO | |
| #ifdef FOO | |
| #undef FOO | |
| #endif | |
| #define FOO " " | |
| #endif | |
| #ifdef THREE | |
| #ifdef FOO | |
| #undef FOO | |
| #endif | |
| #define FOO "world" | |
| #endif | |
| #ifdef FOUR | |
| #ifdef FOO | |
| #undef FOO | |
| #endif | |
| #define FOO(a) foo = a | |
| #endif | |
| #else | |
| int main (int argc, const char **argv) | |
| { | |
| char *foo; | |
| #define DEF_MACROS | |
| #define ONE | |
| #include "info-macros.c" | |
| foo = FOO; | |
| #define TWO | |
| #include "info-macros.c" | |
| foo = FOO; | |
| #define THREE | |
| #include "info-macros.c" | |
| foo = FOO; | |
| #undef THREE | |
| #include "info-macros.c" | |
| foo = FOO; | |
| #undef TWO | |
| #include "info-macros.c" | |
| foo = FOO; | |
| #undef ONE | |
| #include "info-macros.c" | |
| foo = (char *)0; | |
| #define FOUR | |
| #include "info-macros.c" | |
| FOO ("the end."); | |
| return 0; | |
| } | |
| #endif | |