2017-05-11 Nathan Sidwell <nathan@acm.org>
+ * 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.
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;
}