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 8 int foo; 9 10 // CHECK: int foo; 11 12 #define comment /##/ dead tokens live here 13 comment This is stupidity 14 15 int bar; 16 17 // CHECK: int bar; 18 19 #define nested(x) int x comment cute little dead tokens... 20 21 nested(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)) 32 bar(q) 33 34 // CHECK: abc(baz(q)) 35