diff options
author | Nathan Sidwell <nathan@acm.org> | 2020-09-16 08:05:26 -0700 |
---|---|---|
committer | Nathan Sidwell <nathan@acm.org> | 2020-09-16 08:10:44 -0700 |
commit | 7d1be939e0fbc5ce63ba17db3d20ccc39ac17527 (patch) | |
tree | e05d7d804829bfdbc5f724c1f1f64a466dc107d4 /gcc | |
parent | 91347c3bbf788ede4af89f46206991c47fa8aceb (diff) | |
download | gcc-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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/pt.c | 16 |
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); } |