diff options
author | Richard Sandiford <rsandifo@redhat.com> | 2004-01-27 22:13:29 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2004-01-27 22:13:29 +0000 |
commit | 83810fcb9b469b73848da69f566ffca691e5f177 (patch) | |
tree | 352a8578ef802d7d076d66f286fd368b5d2e4b4c /gcc | |
parent | 9a1564bb251c2b31f1fd519eac22485f0a2d181a (diff) | |
download | gcc-83810fcb9b469b73848da69f566ffca691e5f177.zip gcc-83810fcb9b469b73848da69f566ffca691e5f177.tar.gz gcc-83810fcb9b469b73848da69f566ffca691e5f177.tar.bz2 |
re PR target/7297 ([irix6 o32] sjlj exceptions fail)
PR target/7297
* except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
From-SVN: r76754
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/except.c | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e121b9b..47cf998 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/except.c b/gcc/except.c index b735cc1..8c4c726 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -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); |