mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-12 22:14:18 +08:00
re PR driver/22600 (Exit code should be different from 1 for internal compiler error)
PR driver/22600 * system.h (ICE_EXIT_CODE): New macro. * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE. (diagnostic_action_after_output): Likewise. * gcc.c (fatal_ice): New function. (execute): Use it instead of fatal. (fancy_abort): Likewise. * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs. * fortran/error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4. From-SVN: r112292
This commit is contained in:
parent
d67ab5eef8
commit
ddaf3b8666
@ -1,3 +1,14 @@
|
||||
2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||||
|
||||
PR driver/22600
|
||||
* system.h (ICE_EXIT_CODE): New macro.
|
||||
* diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
|
||||
(diagnostic_action_after_output): Likewise.
|
||||
* gcc.c (fatal_ice): New function.
|
||||
(execute): Use it instead of fatal.
|
||||
(fancy_abort): Likewise.
|
||||
* doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
|
||||
|
||||
2006-03-22 Jeff Law <law@redhat.com>
|
||||
|
||||
* loop-unroll.c (analyze_iv_to_split_insn): Handle
|
||||
|
@ -188,7 +188,7 @@ diagnostic_count_diagnostic (diagnostic_context *context,
|
||||
expanded_location s = expand_location (diagnostic->location);
|
||||
fnotice (stderr, "%s:%d: confused by earlier errors, bailing out\n",
|
||||
s.file, s.line);
|
||||
exit (FATAL_EXIT_CODE);
|
||||
exit (ICE_EXIT_CODE);
|
||||
}
|
||||
#endif
|
||||
if (context->internal_error)
|
||||
@ -263,7 +263,7 @@ diagnostic_action_after_output (diagnostic_context *context,
|
||||
fnotice (stderr, "Please submit a full bug report,\n"
|
||||
"with preprocessed source if appropriate.\n"
|
||||
"See %s for instructions.\n", bug_report_url);
|
||||
exit (FATAL_EXIT_CODE);
|
||||
exit (ICE_EXIT_CODE);
|
||||
|
||||
case DK_FATAL:
|
||||
if (context->abort_on_error)
|
||||
|
@ -957,7 +957,8 @@ Normally the @command{gcc} program will exit with the code of 1 if any
|
||||
phase of the compiler returns a non-success return code. If you specify
|
||||
@option{-pass-exit-codes}, the @command{gcc} program will instead return with
|
||||
numerically highest error produced by any phase that returned an error
|
||||
indication.
|
||||
indication. The C, C++, and Fortran frontends return 4, if an internal
|
||||
compiler error is encountered.
|
||||
@end table
|
||||
|
||||
If you only want some of the stages of compilation, you can use
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
||||
|
||||
PR driver/22600
|
||||
* error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4.
|
||||
|
||||
2006-03-22 Thomas Koenig <Thomas.Koenig@online.de>
|
||||
|
||||
PR fortran/19303
|
||||
|
@ -677,7 +677,7 @@ gfc_internal_error (const char *format, ...)
|
||||
error_print ("", format, argp);
|
||||
va_end (argp);
|
||||
|
||||
exit (4);
|
||||
exit (ICE_EXIT_CODE);
|
||||
}
|
||||
|
||||
|
||||
|
24
gcc/gcc.c
24
gcc/gcc.c
@ -330,6 +330,7 @@ static int default_arg (const char *, int);
|
||||
static void set_multilib_dir (void);
|
||||
static void print_multilib_info (void);
|
||||
static void perror_with_name (const char *);
|
||||
static void fatal_ice (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
|
||||
static void notice (const char *, ...) ATTRIBUTE_PRINTF_1;
|
||||
static void display_help (void);
|
||||
static void add_preprocessor_option (const char *, int);
|
||||
@ -2997,12 +2998,12 @@ execute (void)
|
||||
}
|
||||
else
|
||||
#endif
|
||||
fatal ("\
|
||||
fatal_ice ("\
|
||||
Internal error: %s (program %s)\n\
|
||||
Please submit a full bug report.\n\
|
||||
See %s for instructions.",
|
||||
strsignal (WTERMSIG (status)), commands[i].prog,
|
||||
bug_report_url);
|
||||
strsignal (WTERMSIG (status)), commands[i].prog,
|
||||
bug_report_url);
|
||||
}
|
||||
else if (WIFEXITED (status)
|
||||
&& WEXITSTATUS (status) >= MIN_FATAL_STATUS)
|
||||
@ -6818,11 +6819,26 @@ perror_with_name (const char *name)
|
||||
void
|
||||
fancy_abort (const char *file, int line, const char *func)
|
||||
{
|
||||
fatal ("internal gcc abort in %s, at %s:%d", func, file, line);
|
||||
fatal_ice ("internal gcc abort in %s, at %s:%d", func, file, line);
|
||||
}
|
||||
|
||||
/* Output an error message and exit. */
|
||||
|
||||
void
|
||||
fatal_ice (const char *cmsgid, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start (ap, cmsgid);
|
||||
|
||||
fprintf (stderr, "%s: ", programname);
|
||||
vfprintf (stderr, _(cmsgid), ap);
|
||||
va_end (ap);
|
||||
fprintf (stderr, "\n");
|
||||
delete_temp_files ();
|
||||
exit (pass_exit_codes ? ICE_EXIT_CODE : 1);
|
||||
}
|
||||
|
||||
void
|
||||
fatal (const char *cmsgid, ...)
|
||||
{
|
||||
|
@ -227,6 +227,8 @@ extern int errno;
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define ICE_EXIT_CODE 4
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user