aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-opts.c
diff options
context:
space:
mode:
authorPer Bothner <pbothner@apple.com>2003-11-01 03:19:59 +0000
committerPer Bothner <bothner@gcc.gnu.org>2003-10-31 19:19:59 -0800
commit8e974c0eba3197a920a9cdfba1243f2cb8963b03 (patch)
tree41415caad9e50c09c36657a0aef8906cbc763069 /gcc/c-opts.c
parente31f8eda092b52f32ef920253f92396a51ed0292 (diff)
downloadgcc-8e974c0eba3197a920a9cdfba1243f2cb8963b03.zip
gcc-8e974c0eba3197a920a9cdfba1243f2cb8963b03.tar.gz
gcc-8e974c0eba3197a920a9cdfba1243f2cb8963b03.tar.bz2
c-opts.c (finish_options): Change to returns boolean - false iff the call to cpp_find_main_file fails.
* c-opts.c (finish_options): Change to returns boolean - false iff the call to cpp_find_main_file fails. (c_common_init): Skip preprocess_file if finish_options failed. (c_common_parse_file): Break if finish_options failed. From-SVN: r73170
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r--gcc/c-opts.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index b15f31c..4473eaf 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -108,7 +108,7 @@ static void sanitize_cpp_opts (void);
static void add_prefixed_path (const char *, size_t);
static void push_command_line_include (void);
static void cb_file_change (cpp_reader *, const struct line_map *);
-static void finish_options (const char *);
+static bool finish_options (const char *);
#ifndef STDC_0_IN_SYSTEM_HEADERS
#define STDC_0_IN_SYSTEM_HEADERS 0
@@ -1183,8 +1183,8 @@ c_common_init (void)
if (flag_preprocess_only)
{
- finish_options (in_fnames[0]);
- preprocess_file (parse_in);
+ if (finish_options (in_fnames[0]))
+ preprocess_file (parse_in);
return false;
}
@@ -1220,7 +1220,8 @@ c_common_parse_file (int set_yydebug ATTRIBUTE_UNUSED)
cpp_undef_all (parse_in);
}
- finish_options(in_fnames[file_index]);
+ if (! finish_options(in_fnames[file_index]))
+ break;
if (file_index == 0)
pch_init();
c_parse_file ();
@@ -1387,8 +1388,8 @@ add_prefixed_path (const char *suffix, size_t chain)
/* Handle -D, -U, -A, -imacros, and the first -include.
TIF is the input file to which we will return after processing all
- the includes. */
-static void
+ the includes. Returns true on success. */
+static bool
finish_options (const char *tif)
{
if (!cpp_opts->preprocessed)
@@ -1441,8 +1442,10 @@ finish_options (const char *tif)
include_cursor = 0;
this_input_filename = tif;
- cpp_find_main_file (parse_in, this_input_filename);
+ if (! cpp_find_main_file (parse_in, this_input_filename))
+ return false;
push_command_line_include ();
+ return true;
}
/* Give CPP the next file given by -include, if any. */