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