| // RUN: %clang_cc1 -E %s | grep 'noexp: foo y' | |
| // RUN: %clang_cc1 -E %s | grep 'expand: abc' | |
| // RUN: %clang_cc1 -E %s | grep 'noexp2: foo nonexp' | |
| // RUN: %clang_cc1 -E %s | grep 'expand2: abc' | |
| #define A foo | |
| #define foo() abc | |
| #define X A y | |
| // This should not expand to abc, because the foo macro isn't followed by (. | |
| noexp: X | |
| // This should expand to abc. | |
| #undef X | |
| #define X A () | |
| expand: X | |
| // This should be 'foo nonexp' | |
| noexp2: A nonexp | |
| // This should expand | |
| expand2: A ( | |
| ) | |