[openacc, parloops] Fix SIGSEGV in oacc_entry_exit_ok_1
authorTom de Vries <tdevries@suse.de>
Sun, 16 Jun 2019 07:47:15 +0000 (07:47 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Sun, 16 Jun 2019 07:47:15 +0000 (07:47 +0000)
commitf45ce17d98fad556e0b534f9a478f5f602c0ad48
tree5b821801cb9880bae3a5f827f3b288ea8c4f4615
parenta328e008e860ab7ca75de7d3c55eb83d24849e73
[openacc, parloops] Fix SIGSEGV in oacc_entry_exit_ok_1

When compiling the test-case with r268755, we run into a SIGSEGV in
oacc_entry_exit_ok_1 when trying to dereference a NULL red:
...
                      struct reduction_info *red;
                      red = reduction_phi (reduction_list, use_stmt);
                      tree val = PHI_RESULT (red->keep_res);
...

Fix this by handling ref == NULL.

Bootstrapped and reg-tested on x86_64.
Build and reg-tested on x86_64 with nvptx accelerator.

2019-06-16  Tom de Vries  <tdevries@suse.de>

PR tree-optimization/89376
* tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.

* testsuite/libgomp.oacc-c-c++-common/pr89376.c: New test.

From-SVN: r272338
gcc/ChangeLog
gcc/tree-parloops.c
libgomp/ChangeLog
libgomp/testsuite/libgomp.oacc-c-c++-common/pr89376.c [new file with mode: 0644]