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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
This goes wrong during pcom:
   <bb 9> [local count: 136902083]:
+  _26 = (unsigned char) t_29;
+  _25 = -_26;
+  _34 = (signed char) _25;
+  _33 = (sizetype) _34;
+  _53 = _33 * 4;
+  _54 = &a + _53;
+  a_I_lsm0.9_55 = MEM[(int *)_54 + 520B];

   <bb 3> [local count: 912680551]:
   # i_52 = PHI <0(9), i_32(10)>
   _2 = (unsigned char) t_29;
   _3 = 130 - _2;
   _4 = (signed char) _3;
   _5 = (int) _4;
-  t_31 = a[_5];
+  t_31 = a_I_lsm0.9_55;

is of course invalid, because it performs the + 130 addition in sizetype rather
than before the (signed char) cast.

Reply via email to