This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
      }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]