diff options
Diffstat (limited to 'gcc/cpptrad.c')
-rw-r--r-- | gcc/cpptrad.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/gcc/cpptrad.c b/gcc/cpptrad.c index 4a76f96..18d5adb 100644 --- a/gcc/cpptrad.c +++ b/gcc/cpptrad.c @@ -298,15 +298,18 @@ restore_buff (pfile) /* Reads a logical line into the output buffer. Returns TRUE if there is more text left in the buffer. */ bool -_cpp_read_logical_line_trad (pfile) +_cpp_read_logical_line_trad (pfile, overlay) cpp_reader *pfile; + int overlay; { cpp_buffer *buffer; - unsigned int first_line; + unsigned int first_line = 0; - restore_buff (pfile); - - first_line = pfile->line = pfile->trad_line; + if (overlay) + { + restore_buff (pfile); + first_line = pfile->line = pfile->trad_line; + } buffer = pfile->buffer; if (buffer->cur == buffer->rlimit) @@ -330,10 +333,14 @@ _cpp_read_logical_line_trad (pfile) scan_out_logical_line (pfile, NULL); buffer->cur = CUR (pfile->context); - pfile->trad_line = pfile->line; - pfile->line = first_line; - _cpp_overlay_buffer (pfile, pfile->trad_out_base, - pfile->trad_out_cur - pfile->trad_out_base); + if (overlay) + { + pfile->trad_line = pfile->line; + pfile->line = first_line; + _cpp_overlay_buffer (pfile, pfile->trad_out_base, + pfile->trad_out_cur - pfile->trad_out_base); + } + return true; } @@ -855,7 +862,7 @@ canonicalize_text (dest, src, len, pquote) than in the form of their whitespace. */ bool _cpp_expansions_different_trad (macro1, macro2) - cpp_macro *macro1, *macro2; + const cpp_macro *macro1, *macro2; { uchar *p1 = xmalloc (macro1->count + macro2->count); uchar *p2 = p1 + macro1->count; |