[Bug bootstrap/43403] [4.5 Regression] ICE in stage1 compiling __bswapdi2
jakub at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Mar 17 16:37:00 GMT 2010
------- Comment #5 from jakub at gcc dot gnu dot org 2010-03-17 16:36 -------
var-tracking expects that if frame_pointer_rtx (resp. arg_pointer_rtx,
depending on whether FRAME_POINTER_CFA_OFFSET or ARG_POINTER_CFA_OFFSET is
defined)
is said to be eliminated (to stack_pointer_rtx in case of
!frame_pointer_needed), then it is actually eliminated. Apparently that's not
the case on PA, which happily uses both %r3 and %r30 in the code.
I guess
--- var-tracking.c.jj22010-03-17 15:29:42.000000000 +0100
+++ var-tracking.c2010-03-17 17:15:09.000000000 +0100
@@ -7942,6 +7942,11 @@ vt_init_cfa_base (void)
#else
cfa_base_rtx = arg_pointer_rtx;
#endif
+ if (cfa_base_rtx == hard_frame_pointer_rtx)
+ {
+ cfa_base_rtx = NULL_RTX;
+ return;
+ }
if (!MAY_HAVE_DEBUG_INSNS)
return;
can fix this, that will rule out PA with its arg_pointer_rtx ==
frame_pointer_rtx == hard_frame_pointer_rtx.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43403
More information about the Gcc-bugs
mailing list