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

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-02-12 
19:24:21 UTC ---
The file was added for PR 47523.

The issue is that there is no temporary generated - but the LHS is dependent on
the LHS. This should only occur for "LHS = LHS(substring)" where no temporary
is needed for the RHS expression but where a reallocation happens. If no
reallocation happens, memmove takes care of possibly overlapping memory. And if
there is a more complicated expression on the RHS, a temporary should always be
present. Thus, the issue should only occur for
  a = a(1:2)
or
  a = (((( a(1:2) ))))

Reply via email to