diff options
author | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-12-17 00:13:54 +0000 |
---|---|---|
committer | neil <neil@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-12-17 00:13:54 +0000 |
commit | f0c20935793936f286587ca5f6171f7524fb5778 (patch) | |
tree | dc9788c071208bc6125b57c49a68337f6a09eb53 /gcc/c-lex.c | |
parent | d9953e000d67e404387efa5d86f037b59f890f7c (diff) | |
download | gcc-f0c20935793936f286587ca5f6171f7524fb5778.tar.gz |
* c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
* cpperror.c (print_containing_files): Get right line number.
(print_location): Output column of 1 if 0.
* cppfiles.c (stack_include_file): cpp_push_buffer handles
the callback.
* cpphash.h (_cpp_do_file_change): No longer external.
* cpplib.c (do_file_change): Now local to cpplib.c.
(do_line): Fake a buffer stack for preprocessed files.
(cpp_push_buffer): Create a file_change callback. Handle faked
buffers.
(cpp_pop_buffer): Similarly.
* cpplib.h: BUF_FAKE: New buffer type.
* cppmain.c: Update to handle correct file renaming where a
#line is the first line of the main file, and produce only
the renamed file, not the original file, as output.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38319 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-lex.c')
-rw-r--r-- | gcc/c-lex.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/c-lex.c b/gcc/c-lex.c index cf65ceacb2c..13e0ef2468c 100644 --- a/gcc/c-lex.c +++ b/gcc/c-lex.c @@ -234,14 +234,10 @@ cb_change_file (pfile, fc) cpp_reader *pfile ATTRIBUTE_UNUSED; const cpp_file_change *fc; { - if (fc->from.filename == 0) - main_input_filename = fc->to.filename; - in_system_header = fc->sysp; - /* Do the actions implied by the preceding numbers. */ if (fc->reason == FC_ENTER) { - /* FIXME. Don't stack the main buffer on the input stack. */ + /* Don't stack the main buffer on the input stack. */ if (fc->from.filename) { lineno = lex_lineno; @@ -258,6 +254,8 @@ cb_change_file (pfile, fc) } #endif } + else + main_input_filename = fc->to.filename; } else if (fc->reason == FC_LEAVE) { @@ -288,11 +286,9 @@ cb_change_file (pfile, fc) else error ("leaving more files than we entered"); } - else if (fc->reason == FC_RENAME) - input_filename = fc->to.filename; update_header_times (fc->to.filename); - + in_system_header = fc->sysp; input_filename = fc->to.filename; lex_lineno = fc->to.lineno; |