diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-12-12 00:58:04 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-12-12 00:58:04 +0100 |
commit | f8ac7d8f35e7c4a5444d4e554cb822f6346c1f2b (patch) | |
tree | 7d20a573af1e06236f0853fb15c674f275417f72 /gcc | |
parent | f5c03155aa77bdb065fed3c5a0031db45a850493 (diff) | |
download | gcc-f8ac7d8f35e7c4a5444d4e554cb822f6346c1f2b.zip gcc-f8ac7d8f35e7c4a5444d4e554cb822f6346c1f2b.tar.gz gcc-f8ac7d8f35e7c4a5444d4e554cb822f6346c1f2b.tar.bz2 |
re PR fortran/92899 ([OpenMP] ICE in gfc_trans_omp_atomic, at fortran/trans-openmp.c:3769)
PR fortran/92899
* trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP,
do look through conversion on expr2 if any.
* testsuite/libgomp.fortran/atomic1.f90: New test.
From-SVN: r279266
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/fortran/trans-openmp.c | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 474c0a4..5fae7f2 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,4 +1,10 @@ -2019-12-11 Steven G. Kargl <kargl@gcc.gnu.org> +2019-12-11 Jakub Jelinek <jakub@redhat.com> + + PR fortran/92899 + * trans-openmp.c (gfc_trans_omp_atomic): For GFC_OMP_ATOMIC_SWAP, + do look through conversion on expr2 if any. + +2019-12-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/92897 * array.c (gfc_set_array_spec): Remove invalid assert() triggered diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c index 356fd04..b6da7b9 100644 --- a/gcc/fortran/trans-openmp.c +++ b/gcc/fortran/trans-openmp.c @@ -3534,7 +3534,6 @@ gfc_trans_omp_atomic (gfc_code *code) expr2 = code->expr2; if (((atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_MASK) != GFC_OMP_ATOMIC_WRITE) - && (atomic_code->ext.omp_atomic & GFC_OMP_ATOMIC_SWAP) == 0 && expr2->expr_type == EXPR_FUNCTION && expr2->value.function.isym && expr2->value.function.isym->id == GFC_ISYM_CONVERSION) |