summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/.gdbinit5
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/system.h29
3 files changed, 40 insertions, 0 deletions
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 <meissner@cygnus.com>
+ * 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__ */