This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
fix var_tracking bootstrap problems
- From: Richard Henderson <rth at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 2 Jul 2004 10:36:13 -0700
- Subject: fix var_tracking bootstrap problems
Seen on at least ia64 and mips.
Strength reduction uses make_tree, make_tree I recently updated to
not use RTL_EXPRs, but anonymous VAR_DECLs. It didn't occur to me
at the time that SET_DECL_RTL has side effects other that setting
the decl's rtl.
I hadn't seen this on x86 because we don't pass parameters in
registers there. :-/
Anyway, this fixes the ia64 stage1 abort, so I'm checking it in.
r~
* expmed.c (make_tree): Don't use SET_DECL_RTL.
Index: expmed.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expmed.c,v
retrieving revision 1.175
diff -u -r1.175 expmed.c
--- expmed.c 2 Jul 2004 01:15:23 -0000 1.175
+++ expmed.c 2 Jul 2004 17:30:52 -0000
@@ -4432,7 +4432,9 @@
if (POINTER_TYPE_P (type))
x = convert_memory_address (TYPE_MODE (type), x);
- SET_DECL_RTL (t, x);
+ /* Note that we do *not* use SET_DECL_RTL here, because we do not
+ want set_decl_rtl to go adjusting REG_ATTRS for this temporary. */
+ t->decl.rtl = x;
return t;
}