diff options
Diffstat (limited to 'gcc/cp/name-lookup.c')
-rw-r--r-- | gcc/cp/name-lookup.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 2773cf4..80a92ab 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -3965,9 +3965,7 @@ static tree do_pushdecl_with_scope (tree x, cp_binding_level *level, bool is_friend) { cp_binding_level *b; - tree function_decl = current_function_decl; - current_function_decl = NULL_TREE; if (level->kind == sk_class) { b = class_binding_level; @@ -3977,12 +3975,15 @@ do_pushdecl_with_scope (tree x, cp_binding_level *level, bool is_friend) } else { + tree function_decl = current_function_decl; + if (level->kind == sk_namespace) + current_function_decl = NULL_TREE; b = current_binding_level; current_binding_level = level; x = pushdecl (x, is_friend); current_binding_level = b; + current_function_decl = function_decl; } - current_function_decl = function_decl; return x; } |