annotate gcc/testsuite/g++.dg/opt/nrv6.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // PR c++/9993
kono
parents:
diff changeset
2 // Bug: We were failing to destroy b.
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 // { dg-do run }
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 int c, d;
kono
parents:
diff changeset
7
kono
parents:
diff changeset
8 struct Object {
kono
parents:
diff changeset
9 Object() { ++c; }
kono
parents:
diff changeset
10 Object(const Object&) { ++c; }
kono
parents:
diff changeset
11 ~Object() { ++d; }
kono
parents:
diff changeset
12 };
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 Object function() {
kono
parents:
diff changeset
15 int i = 0;
kono
parents:
diff changeset
16 do {
kono
parents:
diff changeset
17 Object b;
kono
parents:
diff changeset
18 if (i++ == 2)
kono
parents:
diff changeset
19 return b;
kono
parents:
diff changeset
20 } while (1);
kono
parents:
diff changeset
21 }
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 int main() {
kono
parents:
diff changeset
24 function();
kono
parents:
diff changeset
25 return c != d;
kono
parents:
diff changeset
26 }