diff options
author | Tobias Burnus <burnus@net-b.de> | 2010-01-08 10:23:26 +0100 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2010-01-08 10:23:26 +0100 |
commit | 1eee5628bd63cd0d6d58700f06f431570db29de0 (patch) | |
tree | 422915f53f5c95d2a683bd9a849b37b940093dec /gcc/fortran/module.c | |
parent | 4e98c66c4fa2d8f4cb09d589ad909895eb247880 (diff) | |
download | gcc-1eee5628bd63cd0d6d58700f06f431570db29de0.zip gcc-1eee5628bd63cd0d6d58700f06f431570db29de0.tar.gz gcc-1eee5628bd63cd0d6d58700f06f431570db29de0.tar.bz2 |
re PR fortran/25829 ([F03] Asynchronous IO support)
2010-01-08 Tobias Burnus <burnus@net-b.de
PR/fortran 25829
* symbol.c (check_conflict, gfc_copy_attr): Add
ASYNCHRONOUS support.
(gfc_add_asynchronous): New function.
* decl.c (match_attr_spec): Add ASYNCHRONOUS support.
(gfc_match_asynchronous): New function.
* dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
* gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
(gfc_add_asynchronous): New Prototype.
* module.c (ab_attribute, mio_symbol_attribute): Add
ASYNCHRONOUS support.
* resolve.c (was_declared): Ditto.
* match.h (gfc_match_asynchronous): New prototype.
* parse.c (decode_specification_statement,decode_statement):
Add ASYNCHRONOUS support.
2010-01-08 Tobias Burnus <burnus@net-b.de
PR/fortran 25829
* gfortran.dg/asynchronous_1.f90: New test.
* gfortran.dg/asynchronous_2.f90: New test.
* gfortran.dg/conflicts.f90: Update error message.
From-SVN: r155732
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r-- | gcc/fortran/module.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c index a07af9a..140f2e2 100644 --- a/gcc/fortran/module.c +++ b/gcc/fortran/module.c @@ -1671,13 +1671,14 @@ typedef enum AB_CRAY_POINTER, AB_CRAY_POINTEE, AB_THREADPRIVATE, AB_ALLOC_COMP, AB_POINTER_COMP, AB_PRIVATE_COMP, AB_VALUE, AB_VOLATILE, AB_PROTECTED, AB_IS_BIND_C, AB_IS_C_INTEROP, AB_IS_ISO_C, AB_ABSTRACT, AB_ZERO_COMP, - AB_IS_CLASS, AB_PROCEDURE, AB_PROC_POINTER + AB_IS_CLASS, AB_PROCEDURE, AB_PROC_POINTER, AB_ASYNCHRONOUS } ab_attribute; static const mstring attr_bits[] = { minit ("ALLOCATABLE", AB_ALLOCATABLE), + minit ("ASYNCHRONOUS", AB_ASYNCHRONOUS), minit ("DIMENSION", AB_DIMENSION), minit ("EXTERNAL", AB_EXTERNAL), minit ("INTRINSIC", AB_INTRINSIC), @@ -1792,6 +1793,8 @@ mio_symbol_attribute (symbol_attribute *attr) { if (attr->allocatable) MIO_NAME (ab_attribute) (AB_ALLOCATABLE, attr_bits); + if (attr->asynchronous) + MIO_NAME (ab_attribute) (AB_ASYNCHRONOUS, attr_bits); if (attr->dimension) MIO_NAME (ab_attribute) (AB_DIMENSION, attr_bits); if (attr->external) @@ -1887,6 +1890,9 @@ mio_symbol_attribute (symbol_attribute *attr) case AB_ALLOCATABLE: attr->allocatable = 1; break; + case AB_ASYNCHRONOUS: + attr->asynchronous = 1; + break; case AB_DIMENSION: attr->dimension = 1; break; |