From: jakub Date: Thu, 24 Jan 2019 19:14:51 +0000 (+0000) Subject: PR tree-optimization/89027 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e42d723e083d9138caad903f7032078a73de9555;p=thirdparty%2Fgcc.git 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@268243 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ca6dfe665779..efb20f77deec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-01-24 Jakub Jelinek + + 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 PR target/88469 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 158c47137e7d..75467a3f84fa 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,8 +1,13 @@ +2019-01-24 Jakub Jelinek + + PR tree-optimization/89027 + * gfortran.dg/gomp/pr89027.f90: New test. + 2019-01-24 Paul Thomas 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 diff --git a/gcc/testsuite/gfortran.dg/gomp/pr89027.f90 b/gcc/testsuite/gfortran.dg/gomp/pr89027.f90 new file mode 100644 index 000000000000..2fa0d23631b9 --- /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 29f119ade774..eb5073c5f612 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)