1*a08ed596SJordan Rose // RUN: %clang_cc1 -E -std=c++11 %s -o - | FileCheck -strict-whitespace %s 2*a08ed596SJordan Rose 3*a08ed596SJordan Rose 4*a08ed596SJordan Rose #define y(a) ..a 5*a08ed596SJordan Rose A: y(.) 6*a08ed596SJordan Rose // This should print as ".. ." to avoid turning into ... 7*a08ed596SJordan Rose // CHECK: A: .. . 8*a08ed596SJordan Rose 9*a08ed596SJordan Rose #define X 0 .. 1 10*a08ed596SJordan Rose B: X 11*a08ed596SJordan Rose // CHECK: B: 0 .. 1 12*a08ed596SJordan Rose 13*a08ed596SJordan Rose #define DOT . 14*a08ed596SJordan Rose C: ..DOT 15*a08ed596SJordan Rose // CHECK: C: .. . 16*a08ed596SJordan Rose 17*a08ed596SJordan Rose 18*a08ed596SJordan Rose #define PLUS + 19*a08ed596SJordan Rose #define EMPTY 20*a08ed596SJordan Rose #define f(x) =x= 21*a08ed596SJordan Rose D: +PLUS -EMPTY- PLUS+ f(=) 22*a08ed596SJordan Rose // CHECK: D: + + - - + + = = = 23*a08ed596SJordan Rose 24*a08ed596SJordan Rose 25*a08ed596SJordan Rose #define test(x) L#x 26*a08ed596SJordan Rose E: test(str) 27*a08ed596SJordan Rose // Should expand to L "str" not L"str" 28*a08ed596SJordan Rose // CHECK: E: L "str" 29*a08ed596SJordan Rose 30*a08ed596SJordan Rose // Should avoid producing >>=. 31*a08ed596SJordan Rose #define equal = 32*a08ed596SJordan Rose F: >>equal 33*a08ed596SJordan Rose // CHECK: F: >> = 34*a08ed596SJordan Rose 35*a08ed596SJordan Rose // Make sure we don't introduce spaces in the guid because we try to avoid 36*a08ed596SJordan Rose // pasting '-' to a numeric constant. 37*a08ed596SJordan Rose #define TYPEDEF(guid) typedef [uuid(guid)] 38*a08ed596SJordan Rose TYPEDEF(66504301-BE0F-101A-8BBB-00AA00300CAB) long OLE_COLOR; 39*a08ed596SJordan Rose // CHECK: typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB)] long OLE_COLOR; 40*a08ed596SJordan Rose 41*a08ed596SJordan Rose // Be careful with UD-suffixes. 42*a08ed596SJordan Rose #define StrSuffix() "abc"_suffix 43*a08ed596SJordan Rose #define IntSuffix() 123_suffix 44*a08ed596SJordan Rose UD: StrSuffix()ident 45*a08ed596SJordan Rose UD: IntSuffix()ident 46*a08ed596SJordan Rose // CHECK: UD: "abc"_suffix ident 47*a08ed596SJordan Rose // CHECK: UD: 123_suffix ident 48