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

--- Comment #3 from Peter A. Bigot <bigotp at acm dot org> 2010-11-07 14:09:31 
UTC ---
Created attachment 22308
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22308
Test case

This test case evokes the bug with the 16-bit msp430 target, which is not
integrated into gcc mainline.  When built with -O2, the copy from cal into tcal
is converted into a series of five one-word moves.  The copies for the values
at word offsets 2 (first half temperature_scale) and 4 (local_modbus_addr) are
apparently eliminated by some other optimization, but the copy for the last
half of temperature_scale hits the dse.c code.

In my case, I end up attempting to convert the value 5 to CCMode, instead of
the value 2 to HIMode, resulting in an ICE in trunc_int_for_mode at
explow.c:56.

I wasn't able to reproduce the ICE on a different architecture, and haven't
tried to check the generated code.  Seems that it's pretty dependent on the
back end.  

Hope this helps, and if not, that it's still ok to fix because it's clearly
wrong.

Reply via email to