From c8634a1a24d9c2d8089b72d90af34d43d22010ff Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Thu, 11 May 2017 14:51:07 +0000 Subject: [PATCH] name-lookup.c (pushdecl_outermost_localscope): Always conditionally stop timer. * name-lookup.c (pushdecl_outermost_localscope): Always conditionally stop timer. From-SVN: r247910 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/name-lookup.c | 18 ++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6db47ed56bf..78269de072f 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2017-05-11 Nathan Sidwell + * name-lookup.c (pushdecl_outermost_localscope): Always + conditionally stop timer. + * decl.c (xref_tag_1): Don't frob ts_lambda scope here. * name-lookup.c (pushtag_1): Deal with ts_lambda scope. diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 552a75f4875..b5a60e34005 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -2874,19 +2874,17 @@ pushdecl_with_scope_1 (tree x, cp_binding_level *level, bool is_friend) tree pushdecl_outermost_localscope (tree x) { + cp_binding_level *b = NULL; bool subtime = timevar_cond_start (TV_NAME_LOOKUP); - cp_binding_level *b = NULL, *n = current_binding_level; - if (n->kind == sk_function_parms) - return error_mark_node; - do - { - b = n; - n = b->level_chain; - } - while (n->kind != sk_function_parms); - tree ret = pushdecl_with_scope_1 (x, b, false); + /* Find the scope just inside the function parms. */ + for (cp_binding_level *n = current_binding_level; + n->kind != sk_function_parms; n = b->level_chain) + b = n; + + tree ret = b ? pushdecl_with_scope_1 (x, b, false) : error_mark_node; timevar_cond_stop (TV_NAME_LOOKUP, subtime); + return ret; } -- 2.30.2