aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/intrinsic.h
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2014-07-12 21:00:47 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2014-07-12 21:00:47 +0200
commit7f4aaf912bdab4fe3ccad012add9a1d00a26dab1 (patch)
tree9038e580c528fda84a1b16297c39c9848284db75 /gcc/fortran/intrinsic.h
parent0eb5f1586fa04fd82180135917b2c80511473c6b (diff)
downloadgcc-7f4aaf912bdab4fe3ccad012add9a1d00a26dab1.zip
gcc-7f4aaf912bdab4fe3ccad012add9a1d00a26dab1.tar.gz
gcc-7f4aaf912bdab4fe3ccad012add9a1d00a26dab1.tar.bz2
check.c (gfc_check_atomic): Update for STAT=.
gcc/fortran/ 2014-07-12 Tobias Burnus <burnus@net-b.de> * check.c (gfc_check_atomic): Update for STAT=. (gfc_check_atomic_def, gfc_check_atomic_ref): Update call. (gfc_check_atomic_op, gfc_check_atomic_cas, gfc_check_atomic_fetch_op): New. * gfortran.h (gfc_isym_id): GFC_ISYM_ATOMIC_CAS, * GFC_ISYM_ATOMIC_ADD, GFC_ISYM_ATOMIC_AND, GFC_ISYM_ATOMIC_OR, GFC_ISYM_ATOMIC_XOR, GFC_ISYM_ATOMIC_FETCH_ADD, GFC_ISYM_ATOMIC_FETCH_AND, GFC_ISYM_ATOMIC_FETCH_OR and GFC_ISYM_ATOMIC_FETCH_XOR. * intrinsic.c (add_subroutines): Handle them. * intrinsic.texi: Add documentation for them. (ATOMIC_REF, ATOMIC_DEFINE): Add STAT=. (ISO_FORTRAN_ENV): Add STAT_FAILED_IMAGE. * intrinsic.h (gfc_check_atomic_op, gfc_check_atomic_cas, gfc_check_atomic_fetch_op): New prototypes. * libgfortran.h (libgfortran_stat_codes): Add * GFC_STAT_FAILED_IMAGE. * iso-fortran-env.def: Add it. * trans-intrinsic.c (conv_intrinsic_atomic_op): Renamed from conv_intrinsic_atomic_ref; handle more atomics. (conv_intrinsic_atomic_def): Handle STAT=. (conv_intrinsic_atomic_cas): New. (gfc_conv_intrinsic_subroutine): Handle new atomics. gcc/testsuite/ 2014-07-12 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray_atomic_1.f90: Update dg-error. * gfortran.dg/coarray_atomic_2.f90: New. * gfortran.dg/coarray_atomic_3.f90: New. * gfortran.dg/coarray_atomic_4.f90: New. * gfortran.dg/coarray/atomic_2.f90: New. From-SVN: r212483
Diffstat (limited to 'gcc/fortran/intrinsic.h')
-rw-r--r--gcc/fortran/intrinsic.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/fortran/intrinsic.h b/gcc/fortran/intrinsic.h
index 05cd146..9437171 100644
--- a/gcc/fortran/intrinsic.h
+++ b/gcc/fortran/intrinsic.h
@@ -38,8 +38,12 @@ bool gfc_check_allocated (gfc_expr *);
bool gfc_check_associated (gfc_expr *, gfc_expr *);
bool gfc_check_atan_2 (gfc_expr *, gfc_expr *);
bool gfc_check_atan2 (gfc_expr *, gfc_expr *);
-bool gfc_check_atomic_def (gfc_expr *, gfc_expr *);
-bool gfc_check_atomic_ref (gfc_expr *, gfc_expr *);
+bool gfc_check_atomic_cas (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *,
+ gfc_expr *);
+bool gfc_check_atomic_def (gfc_expr *, gfc_expr *, gfc_expr *);
+bool gfc_check_atomic_fetch_op (gfc_expr *, gfc_expr *, gfc_expr *, gfc_expr *);
+bool gfc_check_atomic_op (gfc_expr *, gfc_expr *, gfc_expr *);
+bool gfc_check_atomic_ref (gfc_expr *, gfc_expr *, gfc_expr *);
bool gfc_check_besn (gfc_expr *, gfc_expr *);
bool gfc_check_bessel_n2 (gfc_expr *, gfc_expr *, gfc_expr *);
bool gfc_check_bge_bgt_ble_blt (gfc_expr *, gfc_expr *);