Mainline is broken on ia64
H. J. Lu
hjl@lucon.org
Sat Jan 28 05:41:00 GMT 2006
On Fri, Jan 27, 2006 at 06:20:41PM -0500, Daniel Berlin wrote:
> H. J. Lu wrote:
> > I got
> >
> > /net/gnu-13/export/gnu/src/gcc/gcc/gcc/df-scan.c: In function
> > `df_record_entry_block_defs':
> > /net/gnu-13/export/gnu/src/gcc/gcc/gcc/df-scan.c:1753: error:
> > `INCOMING_RETURN_ADDR_RTX' undeclared (first use in this function)
> > /net/gnu-13/export/gnu/src/gcc/gcc/gcc/df-scan.c:1753: error: (Each
> > undeclared identifier is reported only once
> > /net/gnu-13/export/gnu/src/gcc/gcc/gcc/df-scan.c:1753: error: for each
> > function it appears in.)
> > make[5]: *** [df-scan.o] Error 1
> > make[5]: *** Waiting for unfinished jobs....
> >
> > [hjl@gnu-13 gcc]$ grep INCOMING_RETURN_ADDR_RTX *.c
> > df-scan.c: if (REG_P (INCOMING_RETURN_ADDR_RTX))
> > df-scan.c: bitmap_set_bit (df->entry_block_defs, REGNO
> > (INCOMING_RETURN_ADDR_RTX));
> > dwarf2out.c: INCOMING_RETURN_ADDR_RTX. */
> > dwarf2out.c: initial_return_save (INCOMING_RETURN_ADDR_RTX);
> > function.c:#if defined(HAVE_epilogue) &&
> > defined(INCOMING_RETURN_ADDR_RTX)
> > function.c:#if defined(HAVE_epilogue) &&
> > defined(INCOMING_RETURN_ADDR_RTX)
> > function.c: rtx retaddr = INCOMING_RETURN_ADDR_RTX;
> > function.c:#ifdef INCOMING_RETURN_ADDR_RTX
> >
> > df-scan.c doesn't check if INCOMING_RETURN_ADDR_RTX is defined.
>
> Actually, neither does dwarf2out.c specifically check for it, it assumes
> it's defined if DWARF2_UNWIND_INFO does.
>
> #ifdef DWARF2_UNWIND_INFO
> /* On entry, the Canonical Frame Address is at SP. */
> dwarf2out_def_cfa (NULL, STACK_POINTER_REGNUM, INCOMING_FRAME_SP_OFFSET);
> initial_return_save (INCOMING_RETURN_ADDR_RTX);
> #endif
>
>
> Can you try the obvious patch here (surrounding INCOMING_RETURN_ADDR_RTX
> with an ifdef)?
>
This patch works for me.
H.J.
---
2006-01-27 H.J. Lu <hongjiu.lu@intel.com>
* df-scan.c (df_record_entry_block_defs): Check if
INCOMING_RETURN_ADDR_RTX is defined.
--- gcc/df-scan.c.foo 2006-01-27 14:24:43.000000000 -0800
+++ gcc/df-scan.c 2006-01-27 15:28:31.000000000 -0800
@@ -1750,8 +1750,10 @@ df_record_entry_block_defs (struct dataf
}
else
{
+#ifdef INCOMING_RETURN_ADDR_RTX
if (REG_P (INCOMING_RETURN_ADDR_RTX))
bitmap_set_bit (df->entry_block_defs, REGNO (INCOMING_RETURN_ADDR_RTX));
+#endif
/* If STATIC_CHAIN_INCOMING_REGNUM == STATIC_CHAIN_REGNUM
only STATIC_CHAIN_REGNUM is defined. If they are different,
More information about the Gcc-patches
mailing list