diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-07-23 20:09:43 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-07-23 20:09:43 +0200 |
commit | 88e18fedad6803c5f9abdbcf1c4a51c25e12706c (patch) | |
tree | e2355295ba4f503f046c98f919798986a5d39dbd /gcc/fortran/resolve.c | |
parent | 93d7c9943f56fa9b69647433a5ca89a70a19a601 (diff) | |
download | gcc-88e18fedad6803c5f9abdbcf1c4a51c25e12706c.zip gcc-88e18fedad6803c5f9abdbcf1c4a51c25e12706c.tar.gz gcc-88e18fedad6803c5f9abdbcf1c4a51c25e12706c.tar.bz2 |
re PR fortran/40839 (gfortran segmentation fault when a unit number is missing)
PR fortran/40839
* io.c (gfc_resolve_dt): Add LOC argument. Fail if
dt->io_unit is NULL. Return FAILURE after issuing error about
negative UNIT number.
(match_io_element): Don't segfault if current_dt->io_unit is NULL.
* gfortran.h (gfc_resolve_dt): Adjust prototype.
* resolve.c (resolve_code): Adjust caller.
* gfortran.dg/pr40839.f90: New test.
From-SVN: r150021
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index 5b4fc2d..376803d 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -7119,7 +7119,7 @@ resolve_code (gfc_code *code, gfc_namespace *ns) case EXEC_READ: case EXEC_WRITE: - if (gfc_resolve_dt (code->ext.dt) == FAILURE) + if (gfc_resolve_dt (code->ext.dt, &code->loc) == FAILURE) break; resolve_branch (code->ext.dt->err, code); |