diff options
author | Chung-Lin Tang <cltang@codesourcery.com> | 2018-05-31 14:10:10 +0000 |
---|---|---|
committer | Cesar Philippidis <cesar@gcc.gnu.org> | 2018-05-31 07:10:10 -0700 |
commit | bd1cab35c5eabf51d9392751036fa3a71758d263 (patch) | |
tree | b3173fd010fc1a205b8af74f166a3e091a389ad5 /gcc/omp-low.c | |
parent | 22f1f4c790759674d47b704e0faa140343e542d5 (diff) | |
download | gcc-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.c | 3 |
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. */ |