aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2018-05-31 14:10:10 +0000
committerCesar Philippidis <cesar@gcc.gnu.org>2018-05-31 07:10:10 -0700
commitbd1cab35c5eabf51d9392751036fa3a71758d263 (patch)
treeb3173fd010fc1a205b8af74f166a3e091a389ad5 /gcc/omp-low.c
parent22f1f4c790759674d47b704e0faa140343e542d5 (diff)
downloadgcc-bd1cab35c5eabf51d9392751036fa3a71758d263.zip
gcc-bd1cab35c5eabf51d9392751036fa3a71758d263.tar.gz
gcc-bd1cab35c5eabf51d9392751036fa3a71758d263.tar.bz2
re PR middle-end/85879 (ICE in expand_debug_locations, at cfgexpand.c:5405)
Fix PR middle-end/85879 gcc/ * gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true' when emitting error on private/firstprivate reductions. * omp-low.c (lower_omp_target): Avoid reference-type processing on pointers for firstprivate clause. gcc/testsuite/ * gfortran.dg/goacc/pr77371-1.f90: New test. * gfortran.dg/goacc/pr77371-2.f90: New test. * gfortran.dg/goacc/pr85879.f90: New test. Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com> From-SVN: r261025
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r--gcc/omp-low.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index d8588b9..ba6c705 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -7700,7 +7700,8 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx)
if (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_FIRSTPRIVATE)
{
gcc_assert (is_gimple_omp_oacc (ctx->stmt));
- if (omp_is_reference (new_var))
+ if (omp_is_reference (new_var)
+ && TREE_CODE (TREE_TYPE (new_var)) != POINTER_TYPE)
{
/* Create a local object to hold the instance
value. */