From 0fe81a0f05867af6818da309fb3b54678ca0e93f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 29 Sep 2014 07:20:52 +0200 Subject: [PATCH] re PR middle-end/63247 (fortran array alignment in omp target map) PR middle-end/63247 * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION use the alignment of avar rather than ovar. From-SVN: r215678 --- gcc/ChangeLog | 7 +++++++ gcc/omp-low.c | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8628256afb8..bf450917a8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-09-29 Jakub Jelinek + + PR middle-end/63247 + * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER + of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION + use the alignment of avar rather than ovar. + 2014-09-28 John David Anglin * config/pa/pa.c (pa_output_function_epilogue): Only update diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 82651eae7bb..eb0a7ee2fe3 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -10117,6 +10117,9 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx) continue; } + unsigned int talign = TYPE_ALIGN_UNIT (TREE_TYPE (ovar)); + if (DECL_P (ovar) && DECL_ALIGN_UNIT (ovar) > talign) + talign = DECL_ALIGN_UNIT (ovar); if (nc) { tree var = lookup_decl_in_outer_ctx (ovar, ctx); @@ -10131,6 +10134,7 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx) = create_tmp_var (TREE_TYPE (TREE_TYPE (x)), NULL); mark_addressable (avar); gimplify_assign (avar, build_fold_addr_expr (var), &ilist); + talign = DECL_ALIGN_UNIT (avar); avar = build_fold_addr_expr (avar); gimplify_assign (x, avar, &ilist); } @@ -10183,9 +10187,6 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx) default: gcc_unreachable (); } - unsigned int talign = TYPE_ALIGN_UNIT (TREE_TYPE (ovar)); - if (DECL_P (ovar) && DECL_ALIGN_UNIT (ovar) > talign) - talign = DECL_ALIGN_UNIT (ovar); talign = ceil_log2 (talign); tkind |= talign << 3; CONSTRUCTOR_APPEND_ELT (vkind, purpose, -- 2.30.2