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.... > > > > [EMAIL PROTECTED] 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 <[EMAIL PROTECTED]> * 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,