Commit 53fdf0be by Zack Weinberg Committed by Zack Weinberg

tradcpp.c (rescan): Do not recognize directives when the # is indented.

	* tradcpp.c (rescan): Do not recognize directives when the #
	is indented.

	* gcc.dg/cpp/tr-direct.c: New test.

From-SVN: r35139
parent 0fab9d0a
2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
* tradcpp.c (rescan): Do not recognize directives when the #
is indented.
2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
Implement C++ named operators.
* cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
......
2000-07-19 Zack Weinberg <zack@wolery.cumb.org>
* gcc.dg/cpp/tr-direct.c: New test.
* gcc.dg/cpp/directiv.c, gcc.dg/cpp/macsyntx.c,
gcc.dg/cpp/undef1.c: Tweak error regexps.
......
/* Test for some basic aspects of -traditional directive processing. */
/* { dg-do preprocess } */
/* { dg-options -traditional } */
/* There is no #error directive. */
#error bad /* { dg-bogus "bad" } */
/* Directives with their #s indented are not recognized. */
#if 0 /* { dg-bogus "unterminated" } */
......@@ -1187,32 +1187,11 @@ do { ip = &instack[indepth]; \
if (ident_length)
goto specialchar;
/* # keyword: a # must be first nonblank char on the line */
/* # keyword: a # must be the first char on the line */
if (beg_of_line == 0)
goto randomchar;
{
U_CHAR *bp;
/* Scan from start of line, skipping whitespace, comments
and backslash-newlines, and see if we reach this #.
If not, this # is not special. */
bp = beg_of_line;
while (1) {
if (is_hor_space[*bp])
bp++;
else if (*bp == '\\' && bp[1] == '\n')
bp += 2;
else if (*bp == '/' && (newline_fix (bp + 1), bp[1]) == '*') {
bp += 2;
while (!(*bp == '*' && (newline_fix (bp + 1), bp[1]) == '/'))
bp++;
bp += 1;
}
else break;
}
if (bp + 1 != ibp)
goto randomchar;
}
if (beg_of_line + 1 != ibp)
goto randomchar;
/* This # can start a directive. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment