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

--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Created attachment 35875
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35875&action=edit
Minimal reproducer

This gimplifies to:

test_caller_of_write_back_through_ptr ()
{
  <float:64> d.0;
  <float:64> D.59;
  <float:64> d;

  <D.57>:
  d = 4.0e+0;
  d.0 = d;
  write_back_through_ptr (&d.0);
  D.59 = d;
  return D.59;
}

where write_back_through_ptr modifies "d.0", but the return value uses "d",
hence the result is "4.0", rather than the expected value of "5.600000".

Reply via email to