aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2016-07-11 22:40:47 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2016-07-11 22:40:47 +0200
commit3d56e6a465a1fab02df9648c9dca41e98fabbae0 (patch)
tree0ec2ecbac3290fa84d08353e78bd992080b1d8d2 /gcc/omp-low.c
parentc392943c5049a94782fe548003ddd0913b09b292 (diff)
downloadgcc-3d56e6a465a1fab02df9648c9dca41e98fabbae0.zip
gcc-3d56e6a465a1fab02df9648c9dca41e98fabbae0.tar.gz
gcc-3d56e6a465a1fab02df9648c9dca41e98fabbae0.tar.bz2
re PR middle-end/71758 (ICE in verify_gimple_in_cfg, at tree-cfg.c:5212)
PR middle-end/71758 * omp-low.c (expand_omp_target): Gimplify device. * c-c++-common/gomp/pr71758.c: New test. * gfortran.dg/gomp/pr71758.f90: New test. From-SVN: r238231
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r--gcc/omp-low.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index b89978f..ecba096 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -13350,9 +13350,15 @@ expand_omp_target (struct omp_region *region)
make_edge (else_bb, new_bb, EDGE_FALLTHRU);
device = tmp_var;
+ gsi = gsi_last_bb (new_bb);
+ }
+ else
+ {
+ gsi = gsi_last_bb (new_bb);
+ device = force_gimple_operand_gsi (&gsi, device, true, NULL_TREE,
+ true, GSI_SAME_STMT);
}
- gsi = gsi_last_bb (new_bb);
t = gimple_omp_target_data_arg (entry_stmt);
if (t == NULL)
{