aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2019-01-24 20:14:51 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-01-24 20:14:51 +0100
commitacac773aaa0434993650c079685a41b78121a619 (patch)
tree978a2c4430ecdc5524c15d260e1aa5d9f8df98a0 /gcc
parent21f657a48fe0d110f3d35646657090cd77d0f76a (diff)
downloadgcc-acac773aaa0434993650c079685a41b78121a619.zip
gcc-acac773aaa0434993650c079685a41b78121a619.tar.gz
gcc-acac773aaa0434993650c079685a41b78121a619.tar.bz2
re PR tree-optimization/89027 (ICE: verify_gimple failed (Error: non-trivial conversion at assignment))
PR tree-optimization/89027 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers for "omp simd array" variables. * gfortran.dg/gomp/pr89027.f90: New test. From-SVN: r268243
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gfortran.dg/gomp/pr89027.f9022
-rw-r--r--gcc/tree-inline.c3
4 files changed, 37 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ca6dfe6..efb20f7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2019-01-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/89027
+ * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
+ for "omp simd array" variables.
+
2019-01-24 Richard Earnshaw <rearnsha@arm.com>
PR target/88469
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 158c471..75467a3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,8 +1,13 @@
+2019-01-24 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/89027
+ * gfortran.dg/gomp/pr89027.f90: New test.
+
2019-01-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/88929
- * gfortran.dg/ISO_Fortran_binding_3.f90 : New test
- * gfortran.dg/ISO_Fortran_binding_3.c : Subsidiary source.
+ * gfortran.dg/ISO_Fortran_binding_3.f90: New test.
+ * gfortran.dg/ISO_Fortran_binding_3.c: Subsidiary source.
2019-01-23 H.J. Lu <hongjiu.lu@intel.com>
diff --git a/gcc/testsuite/gfortran.dg/gomp/pr89027.f90 b/gcc/testsuite/gfortran.dg/gomp/pr89027.f90
new file mode 100644
index 0000000..2fa0d23
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/gomp/pr89027.f90
@@ -0,0 +1,22 @@
+! PR tree-optimization/89027
+! { dg-do compile }
+! { dg-additional-options "-O2 -fexceptions -fno-tree-dce" }
+
+subroutine bar
+ integer :: a, b
+ a = 1
+ b = 2
+ call foo
+contains
+ subroutine foo
+!$omp simd linear(a:2) linear(b:1)
+ do a = 1, 20, 2
+ b = b + 1
+ end do
+!$omp end simd
+ if (a /= 21 .or. b /= 12) STOP 1
+!$omp task depend(out : a)
+ a = a + 1
+!$omp end task
+ end subroutine foo
+end subroutine bar
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 29f119a..eb5073c 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -2204,7 +2204,8 @@ add_clobbers_to_eh_landing_pad (basic_block bb, copy_body_data *id)
&& !TREE_THIS_VOLATILE (var)
&& !DECL_HAS_VALUE_EXPR_P (var)
&& !is_gimple_reg (var)
- && auto_var_in_fn_p (var, id->src_fn))
+ && auto_var_in_fn_p (var, id->src_fn)
+ && !lookup_attribute ("omp simd array", DECL_ATTRIBUTES (var)))
{
tree *t = id->decl_map->get (var);
if (!t)