blob: 535c5803e79a287b00ad247f24f7df722dac7d70 [file] [log] [blame]
#include "stdlib.h"
// PR8175
int count = 0;
struct L {
int n;
L(int n) : n(n) { count += n; }
~L() { count -= n; }
};
void test0(int n) {
{
L b(n);
if (n) goto l;
}
l: if (count) abort();
}
void test1(int n) {
{
L a(n);
L b(n);
if (n) goto l;
}
l: if (count) abort();
}
void test2(int n) {
{
L a(n);
{
L b(n);
if (n) goto l1;
}
l1: goto l2;
}
l2: if (count) abort();
}
void test3(int n) {
{
L a(n);
if (n) goto l1;
goto l1;
}
l1: if (count) abort();
}
int main(int argc, char *argv[]) {
test0(1);
test1(1);
test2(1);
test3(1);
return 0;
}