c++: Avoid confusing 'nested' name

instantiate_body has a local var call 'nested', which indicates that
this instantiation was caused during the body of some function -- not
necessarily its containing scope.  That's confusing, let's just use
'current_function_decl' directly.  Then we can also simplify the
push_to_top_level logic, which /does/ indicate whether this is an
actual nested function.  (C++ does not have nested functions, but OMP
ODRs fall into that category.  A follow up patch will use that more
usual meaning of 'nested' wrt to functions.)

	gcc/cp/
	* pt.c (instantiate_body): Remove 'nested' var, simplify
	push_to_top logic.
This commit is contained in:
Nathan Sidwell 2020-09-16 08:05:26 -07:00
parent 91347c3bbf
commit 7d1be939e0

View file

@ -25458,17 +25458,15 @@ instantiate_body (tree pattern, tree args, tree d)
tree td = pattern;
tree code_pattern = DECL_TEMPLATE_RESULT (td);
tree fn_context = decl_function_context (d);
if (LAMBDA_FUNCTION_P (d))
/* tsubst_lambda_expr resolved any references to enclosing functions. */
fn_context = NULL_TREE;
bool nested = current_function_decl != NULL_TREE;
bool push_to_top = !(nested && fn_context == current_function_decl);
vec<tree> omp_privatization_save;
if (nested)
if (current_function_decl)
save_omp_privatization_clauses (omp_privatization_save);
bool push_to_top
= !(current_function_decl
&& !LAMBDA_FUNCTION_P (d)
&& decl_function_context (d) == current_function_decl);
if (push_to_top)
push_to_top_level ();
else
@ -25595,7 +25593,7 @@ instantiate_body (tree pattern, tree args, tree d)
else
pop_function_context ();
if (nested)
if (current_function_decl)
restore_omp_privatization_clauses (omp_privatization_save);
}