This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/23372] [4.0/4.1/4.2 Regression] Temporary aggregate copy not elided when passing parameters by value
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Feb 2006 15:41:00 -0000
- Subject: [Bug c++/23372] [4.0/4.1/4.2 Regression] Temporary aggregate copy not elided when passing parameters by value
- References: <bug-23372-7904@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #33 from rguenth at gcc dot gnu dot org 2006-02-14 15:40 -------
The attached patch is bogus, and a correct one doesn't fix the first testcase
(as the attached one didn't, too). As analyzed previously, expand does not
deal with
void g(A*) (a)
{
struct A D.2007;
<bb 2>:
D.2007 = *a_1;
f (D.2007) [tail call];
return;
}
and TER doesn't produce (non-gimple) f (*a). Still TER looks like the only
place where we could get this fixed, because we still have dataflow
information left. Also a real struct copyprop pass will not help here.
As TER / outof-ssa is not something I want to look into, unassigning this.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|rguenth at gcc dot gnu dot |unassigned at gcc dot gnu
|org |dot org
Status|ASSIGNED |NEW
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23372