aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2020-09-16 08:05:26 -0700
committerNathan Sidwell <nathan@acm.org>2020-09-16 08:10:44 -0700
commit7d1be939e0fbc5ce63ba17db3d20ccc39ac17527 (patch)
treee05d7d804829bfdbc5f724c1f1f64a466dc107d4
parent91347c3bbf788ede4af89f46206991c47fa8aceb (diff)
downloadgcc-7d1be939e0fbc5ce63ba17db3d20ccc39ac17527.zip
gcc-7d1be939e0fbc5ce63ba17db3d20ccc39ac17527.tar.gz
gcc-7d1be939e0fbc5ce63ba17db3d20ccc39ac17527.tar.bz2
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.
-rw-r--r--gcc/cp/pt.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index e8aa950..289452a 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -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);
}