aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/pr51264-4.C30
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0c42dee..06e5162 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2012-04-17 Tom de Vries <tom@codesourcery.com>
+
+ * g++.dg/pr51264-4.C: New test.
+
2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52599
diff --git a/gcc/testsuite/g++.dg/pr51264-4.C b/gcc/testsuite/g++.dg/pr51264-4.C
new file mode 100644
index 0000000..58a1b14
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr51264-4.C
@@ -0,0 +1,30 @@
+/* { dg-do compile } */
+/* { dg-options "-O0 -Werror -Wreturn-type" } */
+
+/* Test-case from http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25973#c4. */
+
+struct Block
+{
+ public:
+ Block ();
+ ~Block ();
+};
+
+bool func (bool bar)
+{
+ Block block;
+ bool foo = false;
+
+ if (!foo || bar)
+ do
+ {
+ return true;
+ }
+ while (0);
+ else
+ do
+ {
+ return false;
+ }
+ while (0);
+}