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