// PR c++/12751 | |
// tree-ssa eh lowering bug ran a destructor twice for one object | |
// { dg-do run } | |
static int check; | |
struct Y { | |
Y(); | |
~Y(); | |
}; | |
void foo() { | |
Y y1; | |
Y y2; | |
switch(0) { | |
case 1: { | |
Y y3; | |
return; | |
} | |
} | |
} | |
Y::Y() { ++check; } | |
Y::~Y() { --check; } | |
int main() | |
{ | |
foo (); | |
return check; | |
} |