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()14Object function() { 15 int i = 0; 16 do { 17 Object b; 18 if (i++ == 2) 19 return b; 20 } while (1); 21 } 22 main()23int main() { 24 function(); 25 return c != d; 26 } 27