diff options
author | Neil Booth <neil@daikokuya.co.uk> | 2003-03-01 14:31:21 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2003-03-01 14:31:21 +0000 |
commit | 5793b27668ae1b63e6518f84eab151ad66890eec (patch) | |
tree | a780e502dea6f5dd1bc734c51de06a64223427b4 /gcc/fix-header.c | |
parent | 6620997bdc9419cd243613ecb7b958788ab082cc (diff) | |
download | gcc-5793b27668ae1b63e6518f84eab151ad66890eec.zip gcc-5793b27668ae1b63e6518f84eab151ad66890eec.tar.gz gcc-5793b27668ae1b63e6518f84eab151ad66890eec.tar.bz2 |
Makefile.in (C_AND_OBJC_OBJS, [...]): Update.
* Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
cppinit.o, cppdefault.o, fix-header): Update.
* c-incpath.c: New file.
* c-incpath.h: New file.
* c-lex.c: Include c-incpath.h.
(init_c_lex): Register path simplifier.
* c-opts.c: Include cppdefault.h and c-incpath.h.
(TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
std_cxx_inc, quote_chain_split, add_prefixed_path): New.
(COMMAND_LINE_OPTIONS): Add more options from cpplib.
(missing_arg, c_common_decode_option): Handle them.
(c_common_post_options): Register include chains.
(print_help): Update.
* cppdefault.h (struct default include): Update.
Move some macros to ...
* cppdefault.c: ... here.
(cpp_include_defaults): Add extra field add_sysroot.
* cppfiles.c (include_file, search_from, find_or_create_entry,
cpp_included, find_include_file, remap_filename): Update for
renaming of search_path to cpp_path, and of the chain headers.
(remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
* cpphash.h (struct search_path): Move to cpplib.h.
(struct cpp_buffer, struct cpp_reader): Update.
(_cpp_simplify_pathname): Remove.
* cppinit.c: Don't include prefix.h and cppdefault.h.
(INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
no_pth, cpp_handle_options): Remove.
(struct pending_option): Remove chain members.
(cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
cpp_handle_option): Update.
* cpplib.h (struct cpp_path, cpp_set_include_chains): New.
(struct cpp_options): Remove quote_include, bracket_include,
include_prefix, include_prefix_len, verbose, ignore_srcdir,
no_standard_includes, no_standard_cplusplus_includes.
(struct cpp_callbacks): Add simplify_path.
(cpp_handle_options): Remove.
* fix-header.c: Include c-incpath.h.
(read_scan_file): Update to use c-incpath functionality.
* doc/passes.texi: Update.
cp:
* Make-lang.in (CXX_C_OBJS): Update.
From-SVN: r63612
Diffstat (limited to 'gcc/fix-header.c')
-rw-r--r-- | gcc/fix-header.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/gcc/fix-header.c b/gcc/fix-header.c index d722450..305a868 100644 --- a/gcc/fix-header.c +++ b/gcc/fix-header.c @@ -1,6 +1,6 @@ /* fix-header.c - Make C header file suitable for C++. Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001 Free Software Foundation, Inc. + 1999, 2000, 2001, 2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -78,6 +78,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "obstack.h" #include "scan.h" #include "cpplib.h" +#include "c-incpath.h" static void v_fatal PARAMS ((const char *, va_list)) ATTRIBUTE_PRINTF (1,0) ATTRIBUTE_NORETURN; static void fatal PARAMS ((const char *, ...)) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; @@ -616,7 +617,7 @@ read_scan_file (in_fname, argc, argv) cpp_callbacks *cb; cpp_options *options; struct fn_decl *fn; - int i; + int i, strings_processed; struct symbol_list *cur_symbols; obstack_init (&scan_file_obstack); @@ -624,6 +625,7 @@ read_scan_file (in_fname, argc, argv) scan_in = cpp_create_reader (CLK_GNUC89); cb = cpp_get_callbacks (scan_in); cb->file_change = cb_file_change; + cb->simplify_path = simplify_path; /* We are going to be scanning a header file out of its proper context, so ignore warnings and errors. */ @@ -631,12 +633,32 @@ read_scan_file (in_fname, argc, argv) options->inhibit_warnings = 1; options->inhibit_errors = 1; - i = cpp_handle_options (scan_in, argc, argv); + for (i = 0; i < argc; i += strings_processed) + { + if (argv[i][0] == 'I') + { + if (argv[i][1] != '\0') + strings_processed = 1, add_path (argv[i] + 1, BRACKET, false); + else if (i + 1 == argc) + strings_processed = 0; + else + strings_processed = 2, add_path (argv[i + 1], BRACKET, false); + } + else + strings_processed = cpp_handle_option (scan_in, argc - i, argv + i); + + if (strings_processed == 0) + break; + } + if (i < argc) cpp_error (scan_in, DL_ERROR, "invalid option `%s'", argv[i]); if (cpp_errors (scan_in)) exit (FATAL_EXIT_CODE); + register_include_chains (scan_in, NULL /* sysroot */, NULL /* iprefix */, + true /* stdinc */, false /* cxx_stdinc */, + false /* verbose */); if (! cpp_read_main_file (scan_in, in_fname, NULL)) exit (FATAL_EXIT_CODE); |