llvm-for-llvmta/tools/clang/test/CodeGenCXX/2003-11-29-DuplicatedCleanu...

42 lines
542 B
C++
Raw Permalink Normal View History

2022-04-25 13:02:35 +02:00
// 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; }
}
}