Testcase for duplicated cleanup work (PR11). Note that this testcase is not actually
authorChris Lattner <sabre@nondot.org>
Sat, 29 Nov 2003 09:10:50 +0000 (09:10 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 29 Nov 2003 09:10:50 +0000 (09:10 +0000)
tested automatically, so it is practically useless.  However, it seemed silly to throw
away my testcase, so here it is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10253 91177308-0d34-0410-b5e6-96231b3b80d8

test/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp [new file with mode: 0644]

diff --git a/test/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp b/test/C++Frontend/2003-11-29-DuplicatedCleanupTest.cpp
new file mode 100644 (file)
index 0000000..2f94d99
--- /dev/null
@@ -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; }
+}
+}