This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix 32/64 problem with sjlj exceptions
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 1 Aug 03 18:25:25 EDT
- Subject: Fix 32/64 problem with sjlj exceptions
An obvious fix since exc_ptr is ptr_mode, not Pmode. Not tested since there's
no working 32/64 ia64 port now, the only place where I've seen this come up.
Fri Aug 1 18:22:57 2003 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode,
for accesses to exc_ptr.
*** except.c 19 Jul 2003 14:47:02 -0000 1.248
--- except.c 1 Aug 2003 22:15:28 -0000
*************** sjlj_emit_dispatch_table (rtx dispatch_l
*** 2141,2150 ****
mem = adjust_address (fc, word_mode, sjlj_fc_data_ofs);
! if (word_mode != Pmode)
{
#ifdef POINTERS_EXTEND_UNSIGNED
! mem = convert_memory_address (Pmode, mem);
#else
! mem = convert_to_mode (Pmode, mem, 0);
#endif
}
--- 2141,2150 ----
mem = adjust_address (fc, word_mode, sjlj_fc_data_ofs);
! if (word_mode != ptr_mode)
{
#ifdef POINTERS_EXTEND_UNSIGNED
! mem = convert_memory_address (ptr_mode, mem);
#else
! mem = convert_to_mode (ptr_mode, mem, 0);
#endif
}