diff options
author | Tobias Schlüter <tobias.schlueter@physik.uni-muenchen.de> | 2004-08-30 21:08:41 +0200 |
---|---|---|
committer | Tobias Schlüter <tobi@gcc.gnu.org> | 2004-08-30 21:08:41 +0200 |
commit | 0de4325e0bc2e0601e49ac8e85ca9a7134e50198 (patch) | |
tree | f2545b671e60fba92c46ecb37aaa32965b1784a7 /gcc/fortran/parse.c | |
parent | 442c8e31f0c70473592cbb205ca2d3ebc5cb69ae (diff) | |
download | gcc-0de4325e0bc2e0601e49ac8e85ca9a7134e50198.zip gcc-0de4325e0bc2e0601e49ac8e85ca9a7134e50198.tar.gz gcc-0de4325e0bc2e0601e49ac8e85ca9a7134e50198.tar.bz2 |
gfortran.h (gfc_namespace): Add new field is_block_data.
fortran/
* gfortran.h (gfc_namespace): Add new field is_block_data.
* parse.c (accept_statement): Remove special handling for BLOCK DATA.
(parse_block_data): Record BLOCK DATA name, set is_block_data field.
* trans.c (gfc_generate_code): Handle BLOCK DATA units.
* trans.h (gfc_generate_block_data): Add prototype.
* trans-decl.c (gfc_generate_block_data): New function.
testsuite/
* gfortran.dg/blockdata_1.f90: New test.
From-SVN: r86796
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r-- | gcc/fortran/parse.c | 21 |
1 files changed, 3 insertions, 18 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c index abc3c29..b940fd3 100644 --- a/gcc/fortran/parse.c +++ b/gcc/fortran/parse.c @@ -1058,24 +1058,6 @@ accept_statement (gfc_statement st) break; - case ST_BLOCK_DATA: - { - gfc_symbol *block_data = NULL; - symbol_attribute attr; - - gfc_get_symbol ("_BLOCK_DATA__", gfc_current_ns, &block_data); - gfc_clear_attr (&attr); - attr.flavor = FL_PROCEDURE; - attr.proc = PROC_UNKNOWN; - attr.subroutine = 1; - attr.access = ACCESS_PUBLIC; - block_data->attr = attr; - gfc_current_ns->proc_name = block_data; - gfc_commit_symbols (); - } - - break; - case ST_ENTRY: case_executable: case_exec_markers: @@ -2410,6 +2392,9 @@ parse_block_data (void) static int blank_block=0; gfc_gsymbol *s; + gfc_current_ns->proc_name = gfc_new_block; + gfc_current_ns->is_block_data = 1; + if (gfc_new_block == NULL) { if (blank_block) |