From 22c4957e6b744aed9b442a6e0075fbb70f469b47 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Mon, 27 Apr 1998 08:49:53 +0000 Subject: [PATCH] Redefine abort to report linenumber and filename of the error From-SVN: r19423 --- gcc/.gdbinit | 5 +++++ gcc/ChangeLog | 6 ++++++ gcc/system.h | 29 +++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/gcc/.gdbinit b/gcc/.gdbinit index dea758b5465..fe4592baf32 100644 --- a/gcc/.gdbinit +++ b/gcc/.gdbinit @@ -90,6 +90,11 @@ end # stdio stop working and therefore the `pr' command below as well. b abort +# Put breakpoints at exit and fancy_abort in case abort is mapped +# to either fprintf/exit or fancy_abort. +b exit +b fancy_abort + # Make gdb complain about symbol reading errors. This is so that gcc # developers can see and fix bugs in gcc debug output. set complaints 20 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 77848d63196..23e212d1b98 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ Mon Apr 27 08:55:23 1998 Michael Meissner + * system.h (abort): If abort is not defined, and neither is + USE_SYSTEM_ABORT, redefine abort to call fprintf and exit, + reporting the line and filename of the error. + + * .gdbinit: Add breakpoints on exit and fancy_abort. + * final.c (split_double): Avoid a compiler warning if BITS_PER_WORD is less than or equal to HOST_BIT_PER_WIDE_INT. diff --git a/gcc/system.h b/gcc/system.h index 6e8548ee537..e381c2db794 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -188,4 +188,33 @@ extern void free (); extern char *getenv (); #endif +/* Redefine abort to report an internal error w/o coredump, and reporting the + location of the error in the source file. */ +#ifndef abort +#ifndef __STDC__ +#ifndef __GNUC__ +#ifndef USE_SYSTEM_ABORT +#define USE_SYSTEM_ABORT +#endif /* !USE_SYSTEM_ABORT */ +#endif /* !__GNUC__ */ +#endif /* !__STDC__ */ + +#ifndef USE_SYSTEM_ABORT +#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) +#define abort() \ +(fprintf (stderr, \ + "%s:%d: Internal compiler error\n", __FILE__, __LINE__), \ + exit (FATAL_EXIT_CODE)) + +#else +#define abort() \ +(fprintf (stderr, \ + "%s:%d: Internal compiler error in function %s\n", \ + __FILE__, __LINE__, __PRETTY_FUNCTION__), \ + exit (FATAL_EXIT_CODE)) + +#endif /* recent gcc */ +#endif /* !USE_SYSTEM_ABORT */ +#endif /* !abort */ + #endif /* __GCC_SYSTEM_H__ */