summaryrefslogtreecommitdiffstats
path: root/llvm/test/Regression/C++Frontend
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-11-29 09:10:50 +0000
committerChris Lattner <sabre@nondot.org>2003-11-29 09:10:50 +0000
commit212e596ede36dcced5b5e3e414a708c8d0aa1119 (patch)
treeb7e4e4bff37528749b86dffe0658b28515d9954a /llvm/test/Regression/C++Frontend
parent8384f97ee48f58adc240a3ce1b084033a091a7ef (diff)
downloadbcm5719-llvm-212e596ede36dcced5b5e3e414a708c8d0aa1119.tar.gz
bcm5719-llvm-212e596ede36dcced5b5e3e414a708c8d0aa1119.zip
Testcase for duplicated cleanup work (PR11). Note that this testcase is not actually
tested automatically, so it is practically useless. However, it seemed silly to throw away my testcase, so here it is. llvm-svn: 10253
Diffstat (limited to 'llvm/test/Regression/C++Frontend')
-rw-r--r--llvm/test/Regression/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/llvm/test/Regression/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp b/llvm/test/Regression/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp
new file mode 100644
index 00000000000..2f94d996403
--- /dev/null
+++ b/llvm/test/Regression/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp
@@ -0,0 +1,39 @@
+
+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; }
+}
+}
OpenPOWER on IntegriCloud