aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-09-29 07:20:52 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2014-09-29 07:20:52 +0200
commit0fe81a0f05867af6818da309fb3b54678ca0e93f (patch)
treeb2ee057d3ff66057fe32a46129dc12221098afac /gcc/omp-low.c
parent32a5d2f15c3d8cc6bc4fb966e7b3d2741c32e9f9 (diff)
downloadgcc-0fe81a0f05867af6818da309fb3b54678ca0e93f.zip
gcc-0fe81a0f05867af6818da309fb3b54678ca0e93f.tar.gz
gcc-0fe81a0f05867af6818da309fb3b54678ca0e93f.tar.bz2
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
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r--gcc/omp-low.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 82651ea..eb0a7ee 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,