except.c (expand_eh_return): Readd force_operand call lost in...

Jim Wilson wilson@cygnus.com
Wed Nov 11 13:51:00 GMT 1998


This fixes a compiler abort that happens if you try to use an x86 compiler
to compile the __throw function in libgcc2.c with -O0 -fpic.

1998-11-10  Jim Wilson  <wilson@cygnus.com>

	* except.c (expand_eh_return): Readd force_operand call lost in
	Sept 15 change.

Index: except.c
===================================================================
RCS file: /cvs/cvsfiles/devo/gcc/except.c,v
retrieving revision 1.68
diff -p -r1.68 except.c
*** except.c	1998/11/05 13:40:18	1.68
--- except.c	1998/11/11 01:49:23
*************** expand_eh_return ()
*** 2637,2643 ****
  #ifdef RETURN_ADDR_OFFSET
    tmp = plus_constant (tmp, -RETURN_ADDR_OFFSET);
  #endif
!   emit_move_insn (ra, tmp);
  
    /* Indicate that the registers are in fact used.  */
    emit_insn (gen_rtx_USE (VOIDmode, reg1));
--- 2637,2645 ----
  #ifdef RETURN_ADDR_OFFSET
    tmp = plus_constant (tmp, -RETURN_ADDR_OFFSET);
  #endif
!   tmp = force_operand (tmp, ra);
!   if (tmp != ra)
!     emit_move_insn (ra, tmp);
  
    /* Indicate that the registers are in fact used.  */
    emit_insn (gen_rtx_USE (VOIDmode, reg1));




More information about the Gcc-patches mailing list