1 | // RUN: %clang_cc1 -E -dM %s -o - | FileCheck %s -strict-whitespace |
2 | |
3 | // Space at end even without expansion tokens |
4 | // CHECK: #define A(x) |
5 | #define A(x) |
6 | |
7 | // Space before expansion list. |
8 | // CHECK: #define B(x,y) x y |
9 | #define B(x,y)x y |
10 | |
11 | // No space in argument list. |
12 | // CHECK: #define C(x,y) x y |
13 | #define C(x, y) x y |
14 | |
15 | // No paste avoidance. |
16 | // CHECK: #define D() .. |
17 | #define D() .. |
18 | |
19 | // Simple test. |
20 | // CHECK: #define E . |
21 | // CHECK: #define F X()Y |
22 | #define E . |
23 | #define F X()Y |
24 | |
25 | // gcc prints macros at end of translation unit, so last one wins. |
26 | // CHECK: #define G 2 |
27 | #define G 1 |
28 | #undef G |
29 | #define G 2 |
30 | |
31 | // Variadic macros of various sorts. PR5699 |
32 | |
33 | // CHECK: H(x,...) __VA_ARGS__ |
34 | #define H(x, ...) __VA_ARGS__ |
35 | // CHECK: I(...) __VA_ARGS__ |
36 | #define I(...) __VA_ARGS__ |
37 | // CHECK: J(x...) __VA_ARGS__ |
38 | #define J(x ...) __VA_ARGS__ |
39 | |