summaryrefslogtreecommitdiff
path: root/gcc/c-lex.c
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-17 00:13:54 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2000-12-17 00:13:54 +0000
commitf0c20935793936f286587ca5f6171f7524fb5778 (patch)
treedc9788c071208bc6125b57c49a68337f6a09eb53 /gcc/c-lex.c
parentd9953e000d67e404387efa5d86f037b59f890f7c (diff)
downloadgcc-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.c12
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;