1// RUN: %clang_cc1 -P -E -fms-extensions %s | FileCheck -strict-whitespace %s
2
3// This horrible stuff should preprocess into (other than whitespace):
4//   int foo;
5//   int bar;
6//   int baz;
7
8int foo;
9
10// CHECK: int foo;
11
12#define comment /##/  dead tokens live here
13comment This is stupidity
14
15int bar;
16
17// CHECK: int bar;
18
19#define nested(x) int x comment cute little dead tokens...
20
21nested(baz)  rise of the dead tokens
22
23;
24
25// CHECK: int baz
26// CHECK: ;
27
28
29// rdar://8197149 - VC++ allows invalid token pastes: (##baz
30#define foo(x) abc(x)
31#define bar(y) foo(##baz(y))
32bar(q)
33
34// CHECK: abc(baz(q))
35