IA64 Pointer conversion question / convert code already wrong?

Steve Ellcey sje@cup.hp.com
Mon Apr 25 18:59:00 GMT 2005


> Also, I think convert_memory_address ought to have a
> 	gcc_assert (GET_MODE (x) == to_mode);
> in the #ifndef case.

Interesting, I put this assertion in my code and I now cannot bootstrap
on HPPA.  Looking at the HPPA builds (where POINTERS_EXTEND_UNSIGNED if
not defined) I see the assertion fail because I enter
convert_memory_address with to_mode set to SImode and x set to
'(const_int 0 [0x0])'.

The call to convert_memory_address is being made from memory_address
(explow.c:404).

I am not sure if this is a bug, or if convert_memory_address should
allow this by doing nothing (current behaviour) or if
convert_memory_address should be changed so that it does the same
conversion on const_int values when POINTERS_EXTEND_UNSIGNED is
undefined as it does when POINTERS_EXTEND_UNSIGNED is defined.

Steve Ellcey
sje@cup.hp.com



More information about the Gcc mailing list