aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/io.c
diff options
context:
space:
mode:
authorMikael Morin <mikael.morin@tele2.fr>2008-10-31 16:56:21 +0100
committerMikael Morin <mikael@gcc.gnu.org>2008-10-31 15:56:21 +0000
commitd3d0b9e07f69bd21120ebdeac22d4e197b7dfd1c (patch)
tree811f4814607616ee07e17c7629a183aa38712469 /gcc/fortran/io.c
parent0e6834af18d539e4615be54eb2f9262898add8b4 (diff)
downloadgcc-d3d0b9e07f69bd21120ebdeac22d4e197b7dfd1c.zip
gcc-d3d0b9e07f69bd21120ebdeac22d4e197b7dfd1c.tar.gz
gcc-d3d0b9e07f69bd21120ebdeac22d4e197b7dfd1c.tar.bz2
re PR fortran/35840 (ICE for character expression in I/O specifier)
2008-10-31 Mikael Morin <mikael.morin@tele2.fr> PR fortran/35840 * expr.c (gfc_reduce_init_expr): New function, containing checking code from gfc_match_init_expr, so that checking can be deferred. (gfc_match_init_expr): Use gfc_reduce_init_expr. * io.c (check_io_constraints): Use gfc_reduce_init_expr instead of checking that the expression is a constant. * match.h (gfc_reduce_init_expr): Prototype added. 2008-10-31 Mikael Morin <mikael.morin@tele2.fr> PR fortran/35840 * gfortran.dg/write_check4.f90: New test. From-SVN: r141497
Diffstat (limited to 'gcc/fortran/io.c')
-rw-r--r--gcc/fortran/io.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index fb5ef3e..cb89edd 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -2973,7 +2973,7 @@ if (condition) \
{
static const char * asynchronous[] = { "YES", "NO", NULL };
- if (dt->asynchronous->expr_type != EXPR_CONSTANT)
+ if (gfc_reduce_init_expr (dt->asynchronous) != SUCCESS)
{
gfc_error ("ASYNCHRONOUS= specifier at %L must be an initialization "
"expression", &dt->asynchronous->where);