From 6f6e1e9e8b306bdc76fbd7268583c180b1e32046 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 4 Apr 2012 10:40:51 -0400 Subject: [PATCH] re PR c++/52845 (non-void return type deduced for lambda with empty compound statement) PR c++/52845 * decl.c (finish_function): Update fntype after deducing return type. From-SVN: r186139 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C | 7 +++++++ 4 files changed, 18 insertions(+) create mode 100644 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4b42e41de0e8..1b93ecd134d8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-04 Jason Merrill + + PR c++/52845 + * decl.c (finish_function): Update fntype after deducing return type. + 2012-04-03 Jason Merrill PR c++/52796 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index d210f199a2dc..e2f01d51ab72 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -13518,6 +13518,7 @@ finish_function (int flags) "deduced to %"); } apply_deduced_return_type (fndecl, void_type_node); + fntype = TREE_TYPE (fndecl); } /* Save constexpr function body before it gets munged by diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ed9a3c53f095..92c18df0e4c9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-04-04 Jason Merrill + + PR c++/52845 + * g++.dg/cpp0x/lambda/lambda-warn4.C: New. + 2012-04-03 Jason Merrill PR c++/52796 diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C new file mode 100644 index 000000000000..2afeccfc03c5 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-warn4.C @@ -0,0 +1,7 @@ +// PR c++/52845 +// { dg-options "-std=c++11 -Wall" } + +void f() +{ + [](){}; +} -- 2.47.2