| 1 | // RUN: %clang_cc1 %s -E | FileCheck %s |
|---|---|
| 2 | |
| 3 | #define foo(x) bar x |
| 4 | foo(foo) (2) |
| 5 | // CHECK: bar foo (2) |
| 6 | |
| 7 | #define m(a) a(w) |
| 8 | #define w ABCD |
| 9 | m(m) |
| 10 | // CHECK: m(ABCD) |
| 11 | |
| 12 | |
| 13 | |
| 14 | // rdar://7466570 PR4438, PR5163 |
| 15 | |
| 16 | // We should get '42' in the argument list for gcc compatibility. |
| 17 | #define A 1 |
| 18 | #define B 2 |
| 19 | #define C(x) (x + 1) |
| 20 | |
| 21 | X: C( |
| 22 | #ifdef A |
| 23 | #if A == 1 |
| 24 | #if B |
| 25 | 42 |
| 26 | #endif |
| 27 | #endif |
| 28 | #endif |
| 29 | ) |
| 30 | // CHECK: X: (42 + 1) |
| 31 |