http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55142



--- Comment #29 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-08 
23:21:44 UTC ---

> So for POINTERS_EXTEND_UNSIGNED > 0, we should transform

> 

> (zero_extend:DI (plus:SI (FOO:SI) (const_int Y)))

> 

> in such a way that it won't cause ICE and zero-extend the

> result.  For X32, we just need to generate

> 

> (plus:SI (REG:SI) (const_int Y))



The ICE is a minor detail, the real issue is convert_memory_address_addr_space

and PR middle-end/49721.  The unmodified compiler generates the same

problematic instructions for the full testcase without -fPIC.  It's clear that

Richard's change, aka the un-sign-extension of sizetype constants, is an

earthquake here.

Reply via email to