diff options
| author | Paul Thomas <pault@gcc.gnu.org> | 2006-07-16 15:01:59 +0000 |
|---|---|---|
| committer | Paul Thomas <pault@gcc.gnu.org> | 2006-07-16 15:01:59 +0000 |
| commit | b8ea6dbcbd1fb57226003df785bb0be84a0614f7 (patch) | |
| tree | 388dd87c2767bf52d5aa28790427ec7a5bbd6e9c /gcc/fortran/io.c | |
| parent | 3e27aa84ef34539400456774ade5f2caaa20b5e9 (diff) | |
| download | gcc-b8ea6dbcbd1fb57226003df785bb0be84a0614f7.zip gcc-b8ea6dbcbd1fb57226003df785bb0be84a0614f7.tar.gz gcc-b8ea6dbcbd1fb57226003df785bb0be84a0614f7.tar.bz2 | |
re PR fortran/28384 (ICE on non-existent COMMON block)
2006-07-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28384
* trans-common.c (translate_common): If common_segment is NULL
emit error that common block does not exist.
PR fortran/20844
* io.c (check_io_constraints): It is an error if an ADVANCE
specifier appears without an explicit format.
PR fortran/28201
* resolve.c (resolve_generic_s): For a use_associated function,
do not search for an alternative symbol in the parent name
space.
PR fortran/20893
* resolve.c (resolve_elemental_actual): New function t combine
all the checks of elemental procedure actual arguments. In
addition, check of array valued optional args(this PR) has
been added.
(resolve_function, resolve_call): Remove parts that treated
elemental procedure actual arguments and call the above.
2006-07-16 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20844
* gfortran.dg/io_constaints_2.f90: Add the test for ADVANCE
specifiers requiring an explicit format tag..
PR fortran/28201
* gfortran.dg/generic_5: New test.
PR fortran/20893
* gfortran.dg/elemental_optional_args_1.f90: New test.
From-SVN: r115499
Diffstat (limited to 'gcc/fortran/io.c')
| -rw-r--r-- | gcc/fortran/io.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c index 725e2da..6cf74ee 100644 --- a/gcc/fortran/io.c +++ b/gcc/fortran/io.c @@ -2340,6 +2340,12 @@ if (condition) \ "List directed format(*) is not allowed with a " "ADVANCE=specifier at %L.", &expr->where); + io_constraint (dt->format_expr == NULL + && dt->format_label == NULL + && dt->namelist == NULL, + "the ADVANCE=specifier at %L must appear with an " + "explicit format expression", &expr->where); + if (expr->expr_type == EXPR_CONSTANT && expr->ts.type == BT_CHARACTER) { const char * advance = expr->value.character.string; |
