1 | // RUN: %clang_cc1 -E %s | grep 'noexp: foo y' |
2 | // RUN: %clang_cc1 -E %s | grep 'expand: abc' |
3 | // RUN: %clang_cc1 -E %s | grep 'noexp2: foo nonexp' |
4 | // RUN: %clang_cc1 -E %s | grep 'expand2: abc' |
5 | |
6 | #define A foo |
7 | #define foo() abc |
8 | #define X A y |
9 | |
10 | // This should not expand to abc, because the foo macro isn't followed by (. |
11 | noexp: X |
12 | |
13 | |
14 | // This should expand to abc. |
15 | #undef X |
16 | #define X A () |
17 | expand: X |
18 | |
19 | |
20 | // This should be 'foo nonexp' |
21 | noexp2: A nonexp |
22 | |
23 | // This should expand |
24 | expand2: A ( |
25 | ) |
26 | |
27 | |
28 | |