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

Alexander Monakov <amonakov at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-12-25
                 CC|                            |amker at gcc dot gnu.org,
                   |                            |amonakov at gcc dot gnu.org
            Summary|Wrong constant folding      |[8 Regression] invalid
                   |                            |access introduced in
                   |                            |predcom
     Ever confirmed|0                           |1

--- Comment #2 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
I think the actual culprit is predcom rather than ch_vect; predcom introduces:

  <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];

where t_29 corresponds to value 129 at runtime; assignment to _34 assigns 127
and then the assignment to a_I_lsm0.9_55 performs an OOB access.

Reply via email to