Message ID | 20190115101350.GA15881@delia |
---|---|
State | New |
Headers | show |
Series | [committed,nvptx] Handle assignment to gang-level reduction variable | expand |
Hi! On 2019-01-15T11:13:51+0100, Tom de Vries <tdevries@suse.de> wrote: > this fixes an ICE when handling an assignment to a gang-level reduction > variable. > > Committed to trunk. > PR target/80547 Pushed "Revert PR80547 workaround in 'libgomp.oacc-c-c++-common/parallel-dims.c'" to master branch in commit 0886426f5f543e813c1a61e18da6616caf377dfc, see attached. Grüße Thomas ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank Thürauf
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 03c0f82f4a2..23459e1c6f4 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -6242,7 +6242,8 @@ nvptx_goacc_reduction_init (gcall *call, offload_attrs *oa) init = var; } - gimplify_assign (lhs, init, &seq); + if (lhs != NULL_TREE) + gimplify_assign (lhs, init, &seq); } pop_gimplify_context (NULL); diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c new file mode 100644 index 00000000000..05f58a4bddf --- /dev/null +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c @@ -0,0 +1,16 @@ +/* { dg-xfail-run-if "PR88852" { openacc_host_selected } } */ + +int +main (void) +{ + int x = 123; + +#pragma acc parallel num_gangs(1) reduction (+: x) + { + x = 23; + } + if (x != 146) + __builtin_abort(); + + return 0; +}