llvm-capstone/clang/test/Preprocessor/macro_paste_hashhash.c
Argyrios Kyrtzidis e245aa2a93 When expanding macro arguments, treat '##' coming from an argument as a normal token.
e.g.

#define M(x) A x B
M(##) // should expand to 'A ## B', not 'AB'

llvm-svn: 134588
2011-07-07 03:40:37 +00:00

12 lines
247 B
C

// RUN: %clang_cc1 -E %s | FileCheck %s
#define hash_hash # ## #
#define mkstr(a) # a
#define in_between(a) mkstr(a)
#define join(c, d) in_between(c hash_hash d)
// CHECK: "x ## y";
join(x, y);
#define FOO(x) A x B
// CHECK: A ## B;
FOO(##);