https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96157
Bug ID: 96157 Summary: d: No NRVO when returning an array of a non-POD struct Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: d Assignee: ibuclaw at gdcproject dot org Reporter: ibuclaw at gdcproject dot org Target Milestone: --- struct S { @disable this(this); // triggers nrvo int v; } __gshared void* p; S[1000] foo() nothrow { typeof(return) d; p = &d; return d; } extern(C) void main() nothrow { auto d = foo(); assert(p == &d); }