re PR target/13506 (tcpsm.c:263: internal compiler error: Segmentation fault)
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 26 Aug 2004 16:42:39 +0000 (16:42 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 26 Aug 2004 16:42:39 +0000 (16:42 +0000)
PR target/13506
* toplev.c (crash_signal): If we crashed while emitting
a user asm, then die more gracefully.

From-SVN: r86624

gcc/ChangeLog
gcc/toplev.c

index e47b407a26b2a9440703f2c65d2529959dab67cd..26ba0c683860015e656a34061d52c69de1a584d3 100644 (file)
@@ -1,3 +1,9 @@
+2004-08026  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/13506
+       * toplev.c (crash_signal): If we crashed while emitting
+       a user asm, then die more gracefully.
+
 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
 
        PR target/17119.
index 53f44185584e0246e5eb801a5da89ec8fdde22ad..d1b10ac72b647430a0dc71b70565c0a5fe20fcd5 100644 (file)
@@ -598,6 +598,15 @@ static void
 crash_signal (int signo)
 {
   signal (signo, SIG_DFL);
+
+  /* If we crashed while processing an ASM statement, then be a little more
+     graceful.  It's most likely the user's fault.  */
+  if (this_is_asm_operands)
+    {
+      output_operand_lossage ("unrecoverable error");
+      exit (FATAL_EXIT_CODE);
+    }
+
   internal_error ("%s", strsignal (signo));
 }