https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68378
Bug ID: 68378 Summary: Return value optimization does not fire iff in C mode Product: gcc Version: 4.8.4 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: eyal.lotem at gmail dot com Target Milestone: --- struct Foo { int x[1000]; }; struct Foo f(void); struct Foo g(void) { struct Foo x = f(); return x; } When built with -O3 -xc this generates superfluous inefficient copying. When built with -O3 -xc++ this generates an efficient call without copying. Copying should not be generated here.