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