+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.
--- /dev/null
+/* 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" } }
+*/