cris-elf still broken with "[PATCH] Unbreak ia64 bootstrap (PR debug/45006)"

Hans-Peter Nilsson hp@bitrange.com
Tue Jul 20 21:59:00 GMT 2010


On Tue, 20 Jul 2010, Jakub Jelinek wrote:
> Hi!
>
> My PR45003 fix apparently broke IA-64 bootstrap, because there
> FUNCTION_DECLs have DECL_MODE DImode, while TYPE_MODE of FUNCTION_TYPE
> is TImode.  Guess that's related to fn descriptors.

Probably not; I saw the same for my cris-elf autotester.  No fn
descriptors there.

> The following patch is an attempt to fix that.

But doesn't fix all introduced problems (read: r162348 doesn't
work), see PR45009.

>  For FUNCTION_DECLs,
> I don't see how SIGN_EXTEND/ZERO_EXTEND on the MEM would be ever useful,
> FUNCTION_DECLs ought to appear in DEBUG stmts only inside of ADDR_EXPR
> where the MEM is not used anyway and we just use the address.

It might not matter in the context of a FUNCTION_DECL, but
anyway FWIW, sign-extend and zero-extend on mem are valid insns
(by themselves or as operands for add or sub) for cris/crisv32.

> 	PR debug/45006
> 	* cfgexpand.c (expand_debug_expr): Don't go through adjust_mode
> 	path for FUNCTION_DECLs.  Only look at TYPE_UNSIGNED of
> 	operand's type if exp is tcc_unary class tree.

brgds, H-P



More information about the Gcc-patches mailing list