backport: re PR middle-end/71758 (ICE in verify_gimple_in_cfg, at tree-cfg.c:5212)

Backported from mainline
	2016-07-11  Jakub Jelinek  <jakub@redhat.com>

	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: r238462
This commit is contained in:
Jakub Jelinek 2016-07-19 11:02:11 +02:00 committed by Jakub Jelinek
parent 933342941d
commit 33800c8d66
5 changed files with 44 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2016-07-19 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2016-07-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/71758
* omp-low.c (expand_omp_target): Gimplify device.
2016-07-18 Martin Liska <mliska@suse.cz>
Backported from mainline

View File

@ -9123,9 +9123,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)
{

View File

@ -1,3 +1,12 @@
2016-07-19 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2016-07-11 Jakub Jelinek <jakub@redhat.com>
PR middle-end/71758
* c-c++-common/gomp/pr71758.c: New test.
* gfortran.dg/gomp/pr71758.f90: New test.
2016-07-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Backport from trunk:

View File

@ -0,0 +1,10 @@
/* PR middle-end/71758 */
void
foo (int *p)
{
long long i = 0;
#pragma omp target device (i)
;
#pragma omp target update device (i) to (p[0])
}

View File

@ -0,0 +1,10 @@
! PR middle-end/71758
subroutine pr71758 (p)
integer(8) :: i
integer :: p(20)
i = 0
!$omp target device(i)
!$omp end target
!$omp target update to(p(1:1)) device(i)
end subroutine