If errorcount nonzero, don't call abort if the function is already defined.
authorNick Clifton <nickc@cygnus.com>
Mon, 5 Oct 1998 10:12:39 +0000 (10:12 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Mon, 5 Oct 1998 10:12:39 +0000 (10:12 +0000)
From-SVN: r22836

gcc/ChangeLog
gcc/dwarf2out.c

index b6423a5..df4c791 100644 (file)
@@ -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
index 21367bb..3314b9f 100644 (file)
@@ -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