]> git.saurik.com Git - bison.git/commitdiff
(Torturing the Scanner): Surround the backslash-newline tests with
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Nov 2002 22:53:47 +0000 (22:53 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 14 Nov 2002 22:53:47 +0000 (22:53 +0000)
"#if 0", to make it less likely that we'll run into compiler bugs.
Bring back solitary \ inside comment, but add a closing comment to
work around HP C bug.  Don't test backslash-newline in C character
constant.  This should fix the input.at bug reported by Nelson
H. F. Beebe in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001893.html>.

tests/input.at

index d0a61ba28e85e170c4320a62ad79f1832834f8db..78308d0c207356254222b4abd88fef8900267f8e 100644 (file)
@@ -97,18 +97,33 @@ AT_DATA_GRAMMAR([input.y],
 /* This is seen in GCC: a %{ and %} in middle of a comment. */
 const char *foo = "So %{ and %} can be here too.";
 
-#ifdef __STDC__
+#if 0
+/* These examples test Bison while not stressing C compilers too much.
+   Many C compilers mishandle backslash-newlines, so this part of the
+   test is inside "#if 0".  The comment and string are written so that
+   the "#endif" will be seen regardless of the C compiler bugs that we
+   know about, namely:
+
+     HP C (as of late 2002) mishandles *\[newline]\[newline]/ within a
+     comment.
+
+     The Apple Darwin compiler (as of late 2002) mishandles
+     \\[newline]' within a character constant.
+
+   */
+
 /\
-* A comment with backslash-newlines in it. %{ %} *\
+* A comment with backslash-newlines in it. %} *\
+\
 /
+/* { Close the above comment, if the C compiler mishandled it.  */
 
 char str[] = "\\
 " A string with backslash-newlines in it %{ %} \\
+\
 "";
 
-char apostrophe = '\\
-'\
-';
+char apostrophe = '\'';
 #endif
 
 #include <stdio.h>