aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-01-11 22:14:51 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2009-01-11 22:14:51 +0100
commitf74d9c8f93943ea69270c6b66750080df1531d79 (patch)
tree29ec436df5d319951ef862f4e7a821905a5cb035 /gcc/testsuite/g++.dg
parent79ee9e8be85fa3bbe63c49ff5c789e896d71fdfe (diff)
downloadgcc-f74d9c8f93943ea69270c6b66750080df1531d79.zip
gcc-f74d9c8f93943ea69270c6b66750080df1531d79.tar.gz
gcc-f74d9c8f93943ea69270c6b66750080df1531d79.tar.bz2
re PR c++/36254 (wrong "control reaches end of non-void function" warning with IF_STMT)
PR c++/36254 * cp-gimplify.c (genericize_if_stmt): Renamed from ... (gimplify_if_stmt): ... this. (cp_gimplify_expr): Don't handle IF_STMT here. (cp_genericize_r): Call genericize_if_stmt for IF_STMT. * g++.dg/warn/Wreturn-type-5.C: New test. From-SVN: r143281
Diffstat (limited to 'gcc/testsuite/g++.dg')
-rw-r--r--gcc/testsuite/g++.dg/warn/Wreturn-type-5.C21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/warn/Wreturn-type-5.C b/gcc/testsuite/g++.dg/warn/Wreturn-type-5.C
new file mode 100644
index 0000000..8a19d64
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wreturn-type-5.C
@@ -0,0 +1,21 @@
+// PR c++/36254
+// { dg-do compile }
+// { dg-options "-Wreturn-type" }
+
+int i, j, k;
+struct X { X (); ~X (); };
+
+bool
+foo ()
+{
+ X x;
+ if (i && j)
+ {
+ if (k)
+ return true;
+ else
+ return false;
+ }
+ else
+ return false;
+}