diff gcc/testsuite/gcc.dg/cpp/strify3.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/gcc.dg/cpp/strify3.c	Fri Oct 27 22:46:09 2017 +0900
@@ -0,0 +1,33 @@
+/* Copyright (C) 2001 Free Software Foundation, Inc.  */
+
+/* { dg-do run } */
+
+/* Tests we stringify without inserting a space.  GCC 2.95.x and
+   earlier would insert a bogus space before bar in the string, simply
+   because a space was there in the invocation.
+
+   Neil Booth, 24 Sep 2001.  */
+
+extern int strcmp (const char *, const char *);
+#if DEBUG
+extern int puts (const char *);
+#else
+#define puts(X)
+#endif
+extern void abort (void);
+#define err(str) do { puts(str); abort(); } while (0)
+
+#define str(x) #x
+#define xstr(x) str(x)
+#define glibc_hack(x, y) x@y
+
+int main (int argc, char *argv[])
+{
+  /* The space before "bar" here is vital.  */
+  char a[] = xstr(glibc_hack(foo, bar));
+
+  if (strcmp (a, "foo@bar"))
+    err ("stringification without spaces");
+
+  return 0;
+}