[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
This commit is contained in:
parent
a328e008e8
commit
f45ce17d98
|
@ -1,3 +1,8 @@
|
||||||
|
2019-06-16 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/89376
|
||||||
|
* tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
|
||||||
|
|
||||||
2019-06-15 Maya Rashish <coypu@sdf.org>
|
2019-06-15 Maya Rashish <coypu@sdf.org>
|
||||||
|
|
||||||
* doc/invoke.texi (Spec Files): Update location of the
|
* doc/invoke.texi (Spec Files): Update location of the
|
||||||
|
|
|
@ -3052,11 +3052,11 @@ oacc_entry_exit_ok_1 (bitmap in_loop_bbs, vec<basic_block> region_bbs,
|
||||||
{
|
{
|
||||||
use_operand_p use_p;
|
use_operand_p use_p;
|
||||||
gimple *use_stmt;
|
gimple *use_stmt;
|
||||||
|
struct reduction_info *red;
|
||||||
single_imm_use (lhs, &use_p, &use_stmt);
|
single_imm_use (lhs, &use_p, &use_stmt);
|
||||||
if (gimple_code (use_stmt) == GIMPLE_PHI)
|
if (gimple_code (use_stmt) == GIMPLE_PHI
|
||||||
|
&& (red = reduction_phi (reduction_list, use_stmt)))
|
||||||
{
|
{
|
||||||
struct reduction_info *red;
|
|
||||||
red = reduction_phi (reduction_list, use_stmt);
|
|
||||||
tree val = PHI_RESULT (red->keep_res);
|
tree val = PHI_RESULT (red->keep_res);
|
||||||
if (has_single_use (val))
|
if (has_single_use (val))
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-06-16 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/89376
|
||||||
|
* testsuite/libgomp.oacc-c-c++-common/pr89376.c: New test.
|
||||||
|
|
||||||
2019-06-15 Tom de Vries <tdevries@suse.de>
|
2019-06-15 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/89713
|
PR tree-optimization/89713
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
/* { dg-do run } */
|
||||||
|
/* { dg-additional-options "-fno-tree-ch -fno-tree-dce -fno-tree-vrp" } */
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
int fa;
|
||||||
|
|
||||||
|
#pragma acc kernels
|
||||||
|
for (int rw = 0; rw < 1; ++rw)
|
||||||
|
fa = 0;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue