clang-1/test/CodeGenCXX/2003-11-29-DuplicatedCleanu...

42 строки
542 B
C++

// RUN: %clang_cc1 -emit-llvm %s -o -
void doesntThrow() throw();
struct F {
~F() { doesntThrow(); }
};
void atest() {
F A;
lab:
F B;
goto lab;
}
void test(int val) {
label: {
F A;
F B;
if (val == 0) goto label;
if (val == 1) goto label;
}
}
void test3(int val) {
label: {
F A;
F B;
if (val == 0) { doesntThrow(); goto label; }
if (val == 1) { doesntThrow(); goto label; }
}
}
void test4(int val) {
label: {
F A;
F B;
if (val == 0) { F C; goto label; }
if (val == 1) { F D; goto label; }
}
}