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);
}

Reply via email to