rt_gccstream/gcc/testsuite/g++.dg/opt/nrv6.C

27 lines
378 B
C

// PR c++/9993
// Bug: We were failing to destroy b.
// { dg-do run }
int c, d;
struct Object {
Object() { ++c; }
Object(const Object&) { ++c; }
~Object() { ++d; }
};
Object function() {
int i = 0;
do {
Object b;
if (i++ == 2)
return b;
} while (1);
}
int main() {
function();
return c != d;
}