From 15256c8a8ac6573d250506c40dbe13082186c2aa Mon Sep 17 00:00:00 2001 From: Frederik Harwath Date: Tue, 21 Apr 2020 12:36:14 +0200 Subject: [PATCH] Remove fishy self-assignment in omp-low.c [PR94629] The PR noticed that omp-low.c contains a self-assignment in the function new_omp_context: if (outer_ctx) { ... ctx->outer_reduction_clauses = ctx->outer_reduction_clauses; This is obviously useless. The original intention might have been to copy the field from the outer_ctx to ctx. Since this is done (properly) in the only function where this field is actually used (in function scan_omp_for) and the field is being initialized to zero during the struct allocation, there is no need to attempt to do anything to this field in new_omp_context. Thus this commit removes any assignment to the field from new_omp_context. 2020-04-21 Frederik Harwath PR other/94629 * gcc/omp-low.c (new_omp_context): Remove assignments to ctx->outer_reduction_clauses and ctx->local_reduction_clauses. Reviewed-by: Thomas Schwinge --- gcc/ChangeLog | 6 ++++++ gcc/omp-low.c | 14 ++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 721928d931d..c3572ca03bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-04-21 Frederik Harwath + + PR other/94629 + * omp-low.c (new_omp_context): Remove assignments to + ctx->outer_reduction_clauses and ctx->local_reduction_clauses. + 2020-04-20 Andreas Krebbel * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx") diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 67565d61400..88f23e60d34 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -128,10 +128,16 @@ struct omp_context corresponding tracking loop iteration variables. */ hash_map *lastprivate_conditional_map; - /* A tree_list of the reduction clauses in this context. */ + /* A tree_list of the reduction clauses in this context. This is + only used for checking the consistency of OpenACC reduction + clauses in scan_omp_for and is not guaranteed to contain a valid + value outside of this function. */ tree local_reduction_clauses; - /* A tree_list of the reduction clauses in outer contexts. */ + /* A tree_list of the reduction clauses in outer contexts. This is + only used for checking the consistency of OpenACC reduction + clauses in scan_omp_for and is not guaranteed to contain a valid + value outside of this function. */ tree outer_reduction_clauses; /* Nesting depth of this context. Used to beautify error messages re @@ -931,8 +937,6 @@ new_omp_context (gimple *stmt, omp_context *outer_ctx) ctx->outer = outer_ctx; ctx->cb = outer_ctx->cb; ctx->cb.block = NULL; - ctx->local_reduction_clauses = NULL; - ctx->outer_reduction_clauses = ctx->outer_reduction_clauses; ctx->depth = outer_ctx->depth + 1; } else @@ -948,8 +952,6 @@ new_omp_context (gimple *stmt, omp_context *outer_ctx) ctx->cb.transform_call_graph_edges = CB_CGE_MOVE; ctx->cb.adjust_array_error_bounds = true; ctx->cb.dont_remap_vla_if_no_change = true; - ctx->local_reduction_clauses = NULL; - ctx->outer_reduction_clauses = NULL; ctx->depth = 1; } -- 2.30.2