1*8fbe78f6SDaniel Dunbar // RUN: %clang_cc1 -E -dM %s -o - | FileCheck %s -strict-whitespace 21630c3c4SChris Lattner 301c73e1bSChris Lattner // Space at end even without expansion tokens 4a8ad0a90SDaniel Dunbar // CHECK: #define A(x) 51630c3c4SChris Lattner #define A(x) 61630c3c4SChris Lattner 71630c3c4SChris Lattner // Space before expansion list. 8a8ad0a90SDaniel Dunbar // CHECK: #define B(x,y) x y 91630c3c4SChris Lattner #define B(x,y)x y 101630c3c4SChris Lattner 1101c73e1bSChris Lattner // No space in argument list. 1201c73e1bSChris Lattner // CHECK: #define C(x,y) x y 131630c3c4SChris Lattner #define C(x, y) x y 141630c3c4SChris Lattner 151630c3c4SChris Lattner // No paste avoidance. 165a6fb511SChris Lattner // CHECK: #define D() .. 175a6fb511SChris Lattner #define D() .. 181630c3c4SChris Lattner 191630c3c4SChris Lattner // Simple test. 205a6fb511SChris Lattner // CHECK: #define E . 215a6fb511SChris Lattner // CHECK: #define F X()Y 225a6fb511SChris Lattner #define E . 235a6fb511SChris Lattner #define F X()Y 241630c3c4SChris Lattner 251630c3c4SChris Lattner // gcc prints macros at end of translation unit, so last one wins. 265a6fb511SChris Lattner // CHECK: #define G 2 275a6fb511SChris Lattner #define G 1 285a6fb511SChris Lattner #undef G 295a6fb511SChris Lattner #define G 2 309dfed9fdSChris Lattner 319dfed9fdSChris Lattner // Variadic macros of various sorts. PR5699 329dfed9fdSChris Lattner 339dfed9fdSChris Lattner // CHECK: H(x,...) __VA_ARGS__ 349dfed9fdSChris Lattner #define H(x, ...) __VA_ARGS__ 359dfed9fdSChris Lattner // CHECK: I(...) __VA_ARGS__ 369dfed9fdSChris Lattner #define I(...) __VA_ARGS__ 379dfed9fdSChris Lattner // CHECK: J(x...) __VA_ARGS__ 389dfed9fdSChris Lattner #define J(x ...) __VA_ARGS__ 39