backport: re PR fortran/92977 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp...
commitb69684fdac2ac4bd128150631de6391c786e2184
authorJakub Jelinek <jakub@redhat.com>
Fri, 14 Feb 2020 14:26:52 +0000 (14 15:26 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 14 Feb 2020 15:01:45 +0000 (14 16:01 +0100)
tree9c275438516fb0b1f44f35cc941852f0ebd0d43e
parent4ece9571bcb003148a4c7c8e909da2c1adf60292
backport: re PR fortran/92977 (ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:3526)

Backported from mainline
2019-12-19  Jakub Jelinek  <jakub@redhat.com>

  PR fortran/92977
* frontend-passes.c (call_external_blas): Use || instead of |.

PR fortran/92977
* frontend-passes.c (in_omp_atomic): New variable.
(cfe_expr_0, matmul_to_var_expr, matmul_temp_args,
inline_matmul_assign, call_external_blas): Don't optimize in
EXEC_OMP_ATOMIC.
(optimize_namespace): Clear in_omp_atomic.
(gfc_code_walker): Set in_omp_atomic for EXEC_OMP_ATOMIC, save/restore
it around.

* gfortran.dg/gomp/pr92977.f90: New test.
gcc/fortran/ChangeLog
gcc/fortran/frontend-passes.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/gomp/pr92977.f90 [new file with mode: 0644]