aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2001-02-01 19:15:06 +0000
committerNeil Booth <neil@gcc.gnu.org>2001-02-01 19:15:06 +0000
commit7af5ca82f32f0c2afaa86c6333fbae735b898aa6 (patch)
treeeefba2d110db9d4b965560e16894480fd3e6f999
parentbd9697727ba8f11b7015a5e7e4ab20cd172ddc81 (diff)
downloadgcc-7af5ca82f32f0c2afaa86c6333fbae735b898aa6.zip
gcc-7af5ca82f32f0c2afaa86c6333fbae735b898aa6.tar.gz
gcc-7af5ca82f32f0c2afaa86c6333fbae735b898aa6.tar.bz2
* gcc.dg/cpp/avoidpaste2.c: New tests.
From-SVN: r39394
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/cpp/avoidpaste2.c35
2 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 14117ae..c00497e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2001-02-01 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * gcc.dg/cpp/avoidpaste2.c: New tests.
+
2001-01-31 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/gnu99-init-1.c: Add test for [0 ... 0] range.
diff --git a/gcc/testsuite/gcc.dg/cpp/avoidpaste2.c b/gcc/testsuite/gcc.dg/cpp/avoidpaste2.c
new file mode 100644
index 0000000..5094e3d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/avoidpaste2.c
@@ -0,0 +1,35 @@
+/* Copyright (C) 2001 Free Software Foundation, Inc. */
+
+/* { dg-do preprocess } */
+
+/* This tests that we avoid accidental pasting, as well as gratuitous
+ space insertion, in various nasty places _inside_ a macro's
+ replacement list: on either side of a paste, and on either side of
+ an argument. It also tests that we don't pass empty macro leading
+ whitespace to the next line - this problem use to break Emacs
+ preprocessor abuse.
+
+ Neil Booth, 1 Feb 2001. */
+
+#define EMPTY_WITH_LEADING_SPACE
+#define f(x, y) :x: -y##> -##y>
+#define g(x, y) :x: :y##2 2##y:
+
+/* This should preprocess as
+
+: : : - > - >
+:2: :22 22:
+
+We used to get a space at the start of the line. */
+
+ EMPTY_WITH_LEADING_SPACE
+f(:,)
+g(2, 2)
+
+/*
+ { dg-final { if ![file exists avoidpaste2.i] { return } } }
+ { dg-final { if { [grep avoidpaste2.i "^: : : - > - >"] != "" } \{ } }
+ { dg-final { if { [grep avoidpaste2.i "^:2: :22 22:"] != "" } \{ } }
+ { dg-final { return \} \} } }
+ { dg-final { fail "avoidpaste2.c: paste avoidance" } }
+*/