aboutsummaryrefslogtreecommitdiff
path: root/gcc/cpplib.h
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>2004-02-04 22:52:26 -0800
committerPer Bothner <bothner@gcc.gnu.org>2004-02-04 22:52:26 -0800
commit8e9ea4d72c8f0909db7eda507805a941d48348a2 (patch)
treea8cb79fee4ffa92207a17795cfa3750745b8d001 /gcc/cpplib.h
parent5384443a5f76667b12ccde8451b5a59faefb36da (diff)
downloadgcc-8e9ea4d72c8f0909db7eda507805a941d48348a2.zip
gcc-8e9ea4d72c8f0909db7eda507805a941d48348a2.tar.gz
gcc-8e9ea4d72c8f0909db7eda507805a941d48348a2.tar.bz2
Partially revert/redo 2003-10-01 change; fix -fworking-directory.
* c-ppoutput.c (pp_dir_change): New function. * c-common.h (pp_dir_change): New declaration. * cpplib.h (struct cpp_options): Remove working_directory field. * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to (cpp_read_main_file): as before 10-01. Call _cpp_stack_file. Don't handle -fworking_directory here, but in c_common_post_options. (read_original_directory): Don't back up when done. Don't clear no-longer used working_directory flag. * cpplib.h: Update declarations to match. * c-lex.c (cb_dir_change): Move to c-opts.c. (init_c_lex): Don't set dir_change callback here, since we want to set it even if flag_preprocess_only. * c-opts.c (cb_dir_change): Function moved from c-lex.c. (c_common_post_options): Set dir_change callback. Call pp_dir_change if approporiate. (finish_options): Don't call cpp_find_main_file here. Hence remove unneeded parameter and result. Do LC_RENAME for <built-in>. (c_common_post_options): Call cpp_read_main_file here instead. (c_common_init): Update accordingly. (push_command_line_include): Don't cpp_push_main_file. Do LC_RENAME rather than LC_LEASE to get back to main file. Compared to pre-10-01 version, inline cpp_rename_to_main_file. (c_common_parse_file): Call cpp_read_main_file for subsequent main files, but call finish_options for all files. * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory. * fix-header.c (read_scan_file): Call cpp_read_main_file instead of cpp_find_main_file + cpp_push_main_file. * c-lex.c (fe_file_change): Don't set main_input_filename here. * opts.c (handle_options): Only set main_input_filename first time. From-SVN: r77303
Diffstat (limited to 'gcc/cpplib.h')
-rw-r--r--gcc/cpplib.h19
1 files changed, 6 insertions, 13 deletions
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index b3277c1..fd512b6 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -373,11 +373,6 @@ struct cpp_options
/* Nonzero means __STDC__ should have the value 0 in system headers. */
unsigned char stdc_0_in_system_headers;
-
- /* Nonzero means output a directory line marker right after the
- initial file name line marker, and before a duplicate initial
- line marker. */
- bool working_directory;
};
/* Call backs to cpplib client. */
@@ -536,14 +531,12 @@ extern const struct line_maps *cpp_get_line_maps (cpp_reader *);
extern cpp_callbacks *cpp_get_callbacks (cpp_reader *);
extern void cpp_set_callbacks (cpp_reader *, cpp_callbacks *);
-/* This function finds the main file, but does not start reading it.
- Returns true iff the file was found. */
-extern bool cpp_find_main_file (cpp_reader *, const char *);
-
-/* This function reads the file, but does not start preprocessing.
- This will generate at least one file change callback, and possibly
- a line change callback. */
-extern void cpp_push_main_file (cpp_reader *);
+/* This function reads the file, but does not start preprocessing. It
+ returns the name of the original file; this is the same as the
+ input file, except for preprocessed input. This will generate at
+ least one file change callback, and possibly a line change callback
+ too. If there was an error opening the file, it returns NULL. */
+extern const char *cpp_read_main_file (cpp_reader *, const char *);
/* Set up built-ins like __FILE__. */
extern void cpp_init_builtins (cpp_reader *, int);