mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-15 15:23:02 +00:00
(Torturing the Scanner): Surround the backslash-newline tests with
"#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>.
This commit is contained in:
@@ -97,18 +97,33 @@ AT_DATA_GRAMMAR([input.y],
|
|||||||
/* This is seen in GCC: a %{ and %} in middle of a comment. */
|
/* This is seen in GCC: a %{ and %} in middle of a comment. */
|
||||||
const char *foo = "So %{ and %} can be here too.";
|
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[] = "\\
|
char str[] = "\\
|
||||||
" A string with backslash-newlines in it %{ %} \\
|
" A string with backslash-newlines in it %{ %} \\
|
||||||
|
\
|
||||||
"";
|
"";
|
||||||
|
|
||||||
char apostrophe = '\\
|
char apostrophe = '\'';
|
||||||
'\
|
|
||||||
';
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|||||||
Reference in New Issue
Block a user