This is the mail archive of the 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]

Re: [patch] Pmode/ptr_mode fix for except.c

> though you may have to be more clever than that for
> addresses that wind up being integer constants (and
> thus VOIDmode).

Hrm. This appears to work... my builds for mips and a linux bootstrap
worked. My irix box is down atm so I haven't tested a bootstrap on that.


Yuppies wear socks.

Index: gcc/except.c
RCS file: /cvs/gcc/gcc/gcc/except.c,v
retrieving revision 1.230
diff -u -p -w -r1.230 except.c
--- gcc/except.c	22 Sep 2002 14:09:31 -0000	1.230
+++ gcc/except.c	25 Sep 2002 04:27:12 -0000
@@ -2993,6 +2993,16 @@ expand_builtin_extract_return_addr (addr
   rtx addr = expand_expr (addr_tree, NULL_RTX, Pmode, 0);
+  if (GET_MODE (addr) != Pmode
+      && GET_MODE (addr) != VOIDmode)
+    {
+      addr = convert_memory_address (Pmode, addr);
+      addr = convert_to_mode (Pmode, addr, 0);
+    }
   /* First mask out any unwanted bits.  */
   expand_and (Pmode, addr, MASK_RETURN_ADDR, addr);

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