// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101273 | |
// { dg-do run } | |
struct S101273 | |
{ | |
int x; | |
S101273* impl; | |
this(int x) | |
{ | |
this.x = x; | |
this.impl = &this; | |
} | |
~this() { } | |
} | |
S101273 makeS101273() | |
{ | |
return S101273(2); | |
} | |
S101273 nrvo101273() | |
{ | |
S101273 ret = makeS101273(); | |
return ret; | |
} | |
S101273 rvo101273() | |
{ | |
return makeS101273(); | |
} | |
void main() | |
{ | |
auto nrvo = nrvo101273(); | |
assert(&nrvo is nrvo.impl); | |
auto rvo = rvo101273(); | |
assert(&rvo is rvo.impl); | |
} |