llvm-project/clang/test/Preprocessor/stringize_space.c
James Y Knight 7f3190118b Fix whitespace before token-paste of an argument.
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
2017-05-04 21:31:17 +00:00

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"