Fix -freport-bug patch.
authorThomas Schwinge <thomas@codesourcery.com>
Fri, 26 Sep 2014 13:43:34 +0000 (15:43 +0200)
committerThomas Schwinge <tschwinge@gcc.gnu.org>
Fri, 26 Sep 2014 13:43:34 +0000 (15:43 +0200)
gcc/
* gcc.c (try_generate_repro): Remove argument "prog".  Change all
users.
(run_attempt): Handle errors of "pex_run" invocation.

Fixes bootstrap failure/compiler warnings:

    [...]
    ../../master/gcc/gcc.c: In function 'attempt_status run_attempt(const char**, const char*, const char*, int, int)':
    ../../master/gcc/gcc.c:6319:15: error: variable 'errmsg' set but not used [-Werror=unused-but-set-variable]
       const char *errmsg;
                   ^
    ../../master/gcc/gcc.c: At global scope:
    ../../master/gcc/gcc.c:6412:33: error: unused parameter 'prog' [-Werror=unused-parameter]
     try_generate_repro (const char *prog, const char **argv)
                                     ^
    cc1plus: all warnings being treated as errors
    Makefile:1040: recipe for target 'gcc.o' failed
    make[3]: *** [gcc.o] Error 1
    make[3]: Leaving directory '/media/erich/home/thomas/tmp/gcc/hurd/master.build/gcc'
    Makefile:4285: recipe for target 'all-stage2-gcc' failed
    make[2]: *** [all-stage2-gcc] Error 2
    make[2]: Leaving directory '/media/erich/home/thomas/tmp/gcc/hurd/master.build'
    Makefile:21561: recipe for target 'stage2-bubble' failed
    make[1]: *** [stage2-bubble] Error 2
    make[1]: Leaving directory '/media/erich/home/thomas/tmp/gcc/hurd/master.build'
    Makefile:892: recipe for target 'all' failed
    make: *** [all] Error 2

From-SVN: r215644

gcc/ChangeLog
gcc/gcc.c

index b00392374920b17bc8d83485520f0cb31a01c8b7..623fb7d6ae3ab505ecaa208297043bd734e8c698 100644 (file)
@@ -1,3 +1,9 @@
+2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
+
+       * gcc.c (try_generate_repro): Remove argument "prog".  Change all
+       users.
+       (run_attempt): Handle errors of "pex_run" invocation.
+
 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
 
        * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
index e32ff47685eba38e425ca93790a99b0facc164ee..47c4e283bcd07366c75debbc7276bb58198e9f98 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -253,7 +253,7 @@ static void init_gcc_specs (struct obstack *, const char *, const char *,
 static const char *convert_filename (const char *, int, int);
 #endif
 
-static void try_generate_repro (const char *prog, const char **argv);
+static void try_generate_repro (const char **argv);
 static const char *getenv_spec_function (int, const char **);
 static const char *if_exists_spec_function (int, const char **);
 static const char *if_exists_else_spec_function (int, const char **);
@@ -2918,7 +2918,7 @@ execute (void)
                && i == 0
                && (p = strrchr (commands[0].argv[0], DIR_SEPARATOR))
                && ! strncmp (p + 1, "cc1", 3))
-             try_generate_repro (commands[0].prog, commands[0].argv);
+             try_generate_repro (commands[0].argv);
            if (WEXITSTATUS (status) > greatest_status)
              greatest_status = WEXITSTATUS (status);
            ret_code = -1;
@@ -6332,6 +6332,16 @@ run_attempt (const char **new_argv, const char *out_temp,
   errmsg = pex_run (pex, pex_flags, new_argv[0],
                    CONST_CAST2 (char *const *, const char **, &new_argv[1]), out_temp,
                    err_temp, &err);
+  if (errmsg != NULL)
+    {
+      if (err == 0)
+       fatal_error (errmsg);
+      else
+       {
+         errno = err;
+         pfatal_with_name (errmsg);
+       }
+    }
 
   if (!pex_get_status (pex, 1, &exit_status))
     goto out;
@@ -6409,7 +6419,7 @@ append_text (char *file, const char *str)
    and preprocessed source code.  */
 
 static void
-try_generate_repro (const char *prog, const char **argv)
+try_generate_repro (const char **argv)
 {
   int i, nargs, out_arg = -1, quiet = 0, attempt;
   const char **new_argv;