diff options
author | Per Bothner <per@bothner.com> | 2004-04-22 19:22:27 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 2004-04-22 19:22:27 -0700 |
commit | 500bee0adc06da520a9b8b3afde33afee6f314f3 (patch) | |
tree | 04a13ceb8485dc1405388eb42a55f0a9c7a8ebbc /gcc/cpptrad.c | |
parent | 9344fdb9407d69218d02c2e509a358e80cf64eb6 (diff) | |
download | gcc-500bee0adc06da520a9b8b3afde33afee6f314f3.zip gcc-500bee0adc06da520a9b8b3afde33afee6f314f3.tar.gz gcc-500bee0adc06da520a9b8b3afde33afee6f314f3.tar.bz2 |
line-map.h (struct line_maps): New field highest_line.
* line-map.h (struct line_maps): New field highest_line.
(linemap_position_for_column): Make non-inline function.
(LINEMAP_POSITION_FOR_COLUMN): New macro.
* line-map.c (linemap_init): Clear highest_line field.
(linemap_add): Set highest_line field.
(linemap_line_start): Minor optimization - use highest_line field.
Reduce maximum column hint to 10000. Update highest_line field.
(linemap_position_for_column): Moved from line-map.h. Optimize a bit.
* cpphash.h (struct cpp_reader): Remove line field - instead use
line_table->highest_line.
(saved_line): Remove unused field.
(CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map.
Use line_table's highest_line field instead of cpp_reader's line.
* cpplib.c (start_directive): Likewise use highest_line field.
(do_line, do_linemarker): Likewise just use newest map.
(_cpp_do_file_change): Don't need to set cpp_reader's line field.
* cpperror.c (cpp_error): Likewise use highest_line field.
* cppfiles.c (open_file_failed: Likewise.
(cpp_make_system_header): Likewise use newest map and highest_line.
* cppinit.c (cpp_create_reader): Don't initialize removed field.
* cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
_cpp_lex_direct): Likewise use highest_line.
(_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro.
* cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line,
and use newest map.
* cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line.
* cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line.
(copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line.
From-SVN: r81074
Diffstat (limited to 'gcc/cpptrad.c')
-rw-r--r-- | gcc/cpptrad.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/cpptrad.c b/gcc/cpptrad.c index f6dc99d..e2b11cb 100644 --- a/gcc/cpptrad.c +++ b/gcc/cpptrad.c @@ -148,7 +148,7 @@ static const uchar * copy_comment (cpp_reader *pfile, const uchar *cur, int in_define) { bool unterminated, copy = false; - source_location src_loc = pfile->line; + source_location src_loc = pfile->line_table->highest_line; cpp_buffer *buffer = pfile->buffer; buffer->cur = cur; @@ -271,7 +271,6 @@ _cpp_overlay_buffer (cpp_reader *pfile, const uchar *start, size_t len) pfile->saved_cur = buffer->cur; pfile->saved_rlimit = buffer->rlimit; pfile->saved_line_base = buffer->next_line; - pfile->saved_line = pfile->line; buffer->need_line = false; buffer->cur = start; @@ -360,7 +359,7 @@ _cpp_scan_out_logical_line (cpp_reader *pfile, cpp_macro *macro) CUR (pfile->context) = pfile->buffer->cur; RLIMIT (pfile->context) = pfile->buffer->rlimit; pfile->out.cur = pfile->out.base; - pfile->out.first_line = pfile->line; + pfile->out.first_line = pfile->line_table->highest_line; /* start_of_input_line is needed to make sure that directives really, really start at the first character of the line. */ start_of_input_line = pfile->buffer->cur; @@ -488,7 +487,7 @@ _cpp_scan_out_logical_line (cpp_reader *pfile, cpp_macro *macro) { maybe_start_funlike (pfile, node, out_start, &fmacro); lex_state = ls_fun_open; - fmacro.line = pfile->line; + fmacro.line = pfile->line_table->highest_line; continue; } else if (!recursive_macro (pfile, node)) |