Fix 32/64 problem with sjlj exceptions
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Fri Aug 1 22:19:00 GMT 2003
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
}
More information about the Gcc-patches
mailing list