From 8e974c0eba3197a920a9cdfba1243f2cb8963b03 Mon Sep 17 00:00:00 2001
From: Per Bothner <pbothner@apple.com>
Date: Sat, 1 Nov 2003 03:19:59 +0000
Subject: [PATCH] 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
---
 gcc/ChangeLog |  7 +++++++
 gcc/c-opts.c  | 17 ++++++++++-------
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2dfc201386d5..6f9247fcdc66 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2003-10-31  Per Bothner  <pbothner@apple.com>
+
+	* 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.
+
 2003-10-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
 	* aclocal.m4: Blacklist ultrix* for mmap file.
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index b15f31ce78e5..4473eaf49d33 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.  */
-- 
GitLab