aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@cygnus.com>1998-10-05 10:12:39 +0000
committerNick Clifton <nickc@gcc.gnu.org>1998-10-05 10:12:39 +0000
commitb75ab88ba3b591f07692be10df267f0bddecc055 (patch)
tree2710f4ced6b9d73f33ca9be3a34387d415662bff
parent6a99221410423745185084b26eeb5fd79860a4aa (diff)
downloadgcc-b75ab88ba3b591f07692be10df267f0bddecc055.zip
gcc-b75ab88ba3b591f07692be10df267f0bddecc055.tar.gz
gcc-b75ab88ba3b591f07692be10df267f0bddecc055.tar.bz2
If errorcount nonzero, don't call abort if the function is already defined.
From-SVN: r22836
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dwarf2out.c12
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6423a5..df4c791 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Mon Oct 5 10:11:28 1998 Nick Clifton <nickc@cygnus.com>
+
+ * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
+ call abort if the function is already defined.
+
Mon Oct 5 10:02:36 1998 Jeffrey A Law (law@cygnus.com)
* combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 21367bb..3314b9f 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -8179,7 +8179,17 @@ gen_subprogram_die (decl, context_die)
= lookup_filename (DECL_SOURCE_FILE (decl));
if (get_AT_flag (old_die, DW_AT_declaration) != 1)
- abort ();
+ {
+ /* ??? This can happen if there is a bug in the program, for
+ instance, if it has duplicate function definitions. Ideally,
+ we should detect this case and ignore it. For now, if we have
+ already reported an error, any error at all, then assume that
+ we got here because of a input error, not a dwarf2 bug. */
+ extern int errorcount;
+ if (errorcount)
+ return;
+ abort ();
+ }
/* If the definition comes from the same place as the declaration,
maybe use the old DIE. We always want the DIE for this function