10fd9c48dfc6a324d8399b0b43ab4b943a1b1b843Argyrios Kyrtzidis// RUN: %clang_cc1 -E %s | FileCheck %s 25f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#define hash_hash # ## # 35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#define mkstr(a) # a 45f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#define in_between(a) mkstr(a) 55f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer#define join(c, d) in_between(c hash_hash d) 60fd9c48dfc6a324d8399b0b43ab4b943a1b1b843Argyrios Kyrtzidis// CHECK: "x ## y"; 75f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencerjoin(x, y); 85f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer 90fd9c48dfc6a324d8399b0b43ab4b943a1b1b843Argyrios Kyrtzidis#define FOO(x) A x B 100fd9c48dfc6a324d8399b0b43ab4b943a1b1b843Argyrios Kyrtzidis// CHECK: A ## B; 110fd9c48dfc6a324d8399b0b43ab4b943a1b1b843Argyrios KyrtzidisFOO(##); 12