diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-01-11 22:14:51 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-01-11 22:14:51 +0100 |
commit | f74d9c8f93943ea69270c6b66750080df1531d79 (patch) | |
tree | 29ec436df5d319951ef862f4e7a821905a5cb035 /gcc/testsuite/g++.dg | |
parent | 79ee9e8be85fa3bbe63c49ff5c789e896d71fdfe (diff) | |
download | gcc-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.C | 21 |
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; +} |