re PR target/7297 ([irix6 o32] sjlj exceptions fail)
authorRichard Sandiford <rsandifo@redhat.com>
Tue, 27 Jan 2004 22:13:29 +0000 (22:13 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 27 Jan 2004 22:13:29 +0000 (22:13 +0000)
PR target/7297
* except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().

From-SVN: r76754

gcc/ChangeLog
gcc/except.c

index e121b9b777e0097a3ad9c1a1704cf8856a5fb559..47cf998ac3a8949e2de8bfbe4fa81cbb4c69c84f 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
+
+       PR target/7297
+       * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
+
 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
 
        * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
index b735cc1aef3b17bb6e47d5dfb96df24f41fbd1c1..8c4c726cf1eba5d0e23b1334254095557eb5e60c 100644 (file)
@@ -412,10 +412,8 @@ init_eh (void)
       tmp = build_int_2 (FIRST_PSEUDO_REGISTER + 2 - 1, 0);
 #endif
 #else
-      /* This is 2 for builtin_setjmp, plus whatever the target requires
-        via STACK_SAVEAREA_MODE (SAVE_NONLOCAL).  */
-      tmp = build_int_2 ((GET_MODE_SIZE (STACK_SAVEAREA_MODE (SAVE_NONLOCAL))
-                         / GET_MODE_SIZE (Pmode)) + 2 - 1, 0);
+      /* builtin_setjmp takes a pointer to 5 words.  */
+      tmp = build_int_2 (5 * BITS_PER_WORD / POINTER_SIZE - 1, 0);
 #endif
       tmp = build_index_type (tmp);
       tmp = build_array_type (ptr_type_node, tmp);