[Bug c++/23372] Temporary aggregate copy not elided when passing parameters by value

rguenth at tat dot physik dot uni-tuebingen dot de gcc-bugzilla@gcc.gnu.org
Sat Aug 13 14:17:00 GMT 2005


------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de  2005-08-13 14:17 -------
The problem is, we end up with

void g(A*) (a)
{
  struct A D.1608;

<bb 0>:
  D.1608 = *a;
  f (D.1608) [tail call];
  return;

}

after the tree optimizers.  f (*a) would not be gimple, so we create
the temporary in the first place.  TER does not remove this wart,
neither does expand - so we start with two memcpys after RTL expansion.

This is definitively different from PR16405.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org


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



More information about the Gcc-bugs mailing list