
The whitespace should come from the argument name in the macro expansion, rather than from the token passed to the macro (same as it does when not pasting). Added a new test case for the change in behavior to stringize_space.c. FileCheck'ized macro_paste_commaext.c, tweaked the test case, and added a comment; no behavioral change to this test. Differential Revision: https://reviews.llvm.org/D30427 llvm-svn: 302195
32 lines
465 B
C
32 lines
465 B
C
// RUN: %clang_cc1 -E %s | FileCheck --strict-whitespace %s
|
|
|
|
#define A(b) -#b , - #b , -# b , - # b
|
|
A()
|
|
|
|
// CHECK: {{^}}-"" , - "" , -"" , - ""{{$}}
|
|
|
|
|
|
#define t(x) #x
|
|
t(a
|
|
c)
|
|
|
|
// CHECK: {{^}}"a c"{{$}}
|
|
|
|
#define str(x) #x
|
|
#define f(x) str(-x)
|
|
f(
|
|
1)
|
|
|
|
// CHECK: {{^}}"-1"
|
|
|
|
#define paste(a,b) str(a<b##ld)
|
|
paste(hello1, wor)
|
|
paste(hello2,
|
|
wor)
|
|
paste(hello3,
|
|
wor)
|
|
|
|
// CHECK: {{^}}"hello1<world"
|
|
// CHECK: {{^}}"hello2<world"
|
|
// CHECK: {{^}}"hello3<world"
|