1 // PR c++/12751 2 // tree-ssa eh lowering bug ran a destructor twice for one object 3 // { dg-do run } 4 5 static int check; 6 7 struct Y { 8 Y(); 9 ~Y(); 10 }; 11 foo()12void foo() { 13 Y y1; 14 Y y2; 15 switch(0) { 16 case 1: { 17 Y y3; 18 return; 19 } 20 } 21 } 22 Y()23Y::Y() { ++check; } ~Y()24Y::~Y() { --check; } 25 main()26int main() 27 { 28 foo (); 29 return check; 30 } 31