diff options
author | Jason Merrill <jason@redhat.com> | 2010-04-07 18:16:15 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-04-07 18:16:15 -0400 |
commit | fb4117f8d9d9e0f7c91649164920d4bb85b7e653 (patch) | |
tree | 52afc5ab370ab2f7d764d883232d5b3ce453cc70 | |
parent | aae43040a07d9ab956df339e419549963f86e6ee (diff) | |
download | gcc-fb4117f8d9d9e0f7c91649164920d4bb85b7e653.zip gcc-fb4117f8d9d9e0f7c91649164920d4bb85b7e653.tar.gz gcc-fb4117f8d9d9e0f7c91649164920d4bb85b7e653.tar.bz2 |
re PR c++/43016 ([C++0x] Inappropriate multiple definition error for lambda function when inside inline functions)
PR c++/43016
* decl.c (start_preparsed_function): Do defer nested functions.
From-SVN: r158095
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/decl.c | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 4ea2565..fa01fcb 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2010-04-07 Jason Merrill <jason@redhat.com> + PR c++/43016 + * decl.c (start_preparsed_function): Do defer nested functions. + PR c++/11094, DR 408 * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New. * decl2.c (finish_static_data_member_decl): Set it. diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 7a82ed6..32aeda2 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -12023,9 +12023,7 @@ start_preparsed_function (tree decl1, tree attrs, int flags) if ((DECL_DECLARED_INLINE_P (decl1) || DECL_TEMPLATE_INSTANTIATION (decl1)) - && ! DECL_INTERFACE_KNOWN (decl1) - /* Don't try to defer nested functions for now. */ - && ! decl_function_context (decl1)) + && ! DECL_INTERFACE_KNOWN (decl1)) DECL_DEFER_OUTPUT (decl1) = 1; else DECL_INTERFACE_KNOWN (decl1) = 1; |