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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|X86_64                      |x86_64-*-*
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |ASSIGNED
      Known to work|                            |4.6.4
           Keywords|                            |wrong-code
   Last reconfirmed|                            |2017-08-28
          Component|c++                         |tree-optimization
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
     Ever confirmed|0                           |1
            Summary|Issue with inline memcpy    |[5/6/7/8 Regression] Issue
                   |with optimizations enabled  |with inline memcpy with
                   |                            |optimizations enabled
   Target Milestone|---                         |5.5
      Known to fail|                            |4.7.3, 4.8.5, 5.4.0, 6.4.0,
                   |                            |7.2.0

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  FRE does this.  Mine.

int main() ()
{
  struct Msg msg;
  uint8_t * _3;

  <bb 2> [100.00%]:
  _3 = operator new [] (30);
  MEM[(void *)&msg + 4B] = 289662039076023245;
  MEM[(long unsigned int *)&msg + 12B] = 66051;
  memcpy (_3, &MEM[(struct Payload *)&msg]._pref, 12);
  printval (5655);
  operator delete [] (_3);
  msg ={v} {CLOBBER};
  return 0;

Reply via email to