1 // PR c++/9993
2 // Bug: We were failing to destroy b.
3 
4 // { dg-do run }
5 
6 int c, d;
7 
8 struct Object {
ObjectObject9   Object()                      { ++c; }
ObjectObject10   Object(const Object&)         { ++c; }
~ObjectObject11   ~Object()                     { ++d; }
12 };
13 
function()14 Object function() {
15   int i = 0;
16   do {
17     Object b;
18     if (i++ == 2)
19       return b;
20   } while (1);
21 }
22 
main()23 int main() {
24   function();
25   return c != d;
26 }
27