re PR preprocessor/7138 (gcc-3.2 failed to compile kernel)

PR preprocessor/7138
	* cpplib.c (_cpp_handle_directive): Do traditional
	preparation after setting state.angled_headers.
	* cpptrad.c (scan_out_logical_line): Fix potential
	quote bug.

From-SVN: r55055
This commit is contained in:
Neil Booth 2002-06-28 06:26:54 +00:00 committed by Neil Booth
parent 55c1c60d4f
commit d1a586888e
3 changed files with 15 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2002-06-28 Neil Booth <neil@daikokuya.co.uk>
PR preprocessor/7138
* cpplib.c (_cpp_handle_directive): Do traditional
preparation after setting state.angled_headers.
* cpptrad.c (scan_out_logical_line): Fix potential
quote bug.
2002-06-27 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/rs6000.c (rs6000_override_options): Move

View File

@ -388,10 +388,6 @@ _cpp_handle_directive (pfile, indented)
"style of line directive is a GCC extension");
}
pfile->directive = dir;
if (CPP_OPTION (pfile, traditional))
prepare_directive_trad (pfile);
if (dir)
{
/* If we have a directive that is not an opening conditional,
@ -442,6 +438,10 @@ _cpp_handle_directive (pfile, indented)
cpp_token_as_text (pfile, dname));
}
pfile->directive = dir;
if (CPP_OPTION (pfile, traditional))
prepare_directive_trad (pfile);
if (dir)
{
/* If we are processing a `#define' directive and we have been

View File

@ -435,12 +435,13 @@ scan_out_logical_line (pfile, macro)
const uchar *cur;
uchar *out;
struct fun_macro fmacro;
unsigned int c, paren_depth = 0, quote = 0;
unsigned int c, paren_depth = 0, quote;
enum ls lex_state = ls_none;
fmacro.buff = NULL;
start_logical_line:
quote = 0;
CUR (pfile->context) = pfile->buffer->cur;
RLIMIT (pfile->context) = pfile->buffer->rlimit;
pfile->out.cur = pfile->out.base;
@ -502,7 +503,7 @@ scan_out_logical_line (pfile, macro)
quote = '>';
break;
case '>':
if (pfile->state.angled_headers && c == quote)
if (c == quote)
{
pfile->state.angled_headers = false;
quote = 0;