2009-08-25 17:38:29 +02:00
|
|
|
// RUN: %llvmgxx -S %s -o - | llvm-as -o /dev/null
|
2004-11-06 23:29:57 +01:00
|
|
|
|
2003-11-29 10:10:50 +01:00
|
|
|
|
|
|
|
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; }
|
|
|
|
}
|
|
|
|
}
|