strp2.c   [plain text]


/* { dg-do run } */

/* Test for odd corner cases in stringizing/pasting.
   Taken more or less verbatim from C99 section 6.10.3.3.  */

#include <stdlib.h>
#include <string.h>

#define hash_hash # ## #
#define mkstr(a) # a
#define in_between(a) mkstr(a)
#define join(c, d) in_between(c hash_hash d)

const char p[] = join(x, y);
const char q[] = "x ## y";

int
main (void)
{
  if (strcmp (p, q))
    abort ();
  return 0;
}