https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117599

--- Comment #9 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
We have

<unnamed-signed:63> _48;

but

_48 = VIEW_CONVERT_EXPR<unsigned long[10]>(b575[i_6])[8];
_49 = (unsigned long) _48;

Thus a signedness mismatch between _48 and the type of
VIEW_CONVERT_EXPR<unsigned long[10]>(b575[i_6])[8] triggers this.

OTOH x86 has things like

unsigned long _60;
<unnamed-signed:63> _61;
_60 = VIEW_CONVERT_EXPR<unsigned long[9]>(b575[i_6])[8];
_61 = (<unnamed-signed:63>) _60;

Thus it seems we are missing a non-trivial type conversion here.  The length 
difference of the unsigned long[] seems not relevant.

Reply via email to