re PR fortran/66979 (gfortran internal compiler error with malformed FLUSH statement)
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66979 * io.c (gfc_resolve_filepos): Check for a UNIT number. Add a nearby missing 'return false'. 2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66979 gfortran.dg/pr66979.f90: new test. From-SVN: r228364
This commit is contained in:
parent
b64c3d0696
commit
220ab6b433
@ -1,3 +1,9 @@
|
|||||||
|
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/66979
|
||||||
|
* io.c (gfc_resolve_filepos): Check for a UNIT number. Add a nearby
|
||||||
|
missing 'return false'.
|
||||||
|
|
||||||
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/67616
|
PR fortran/67616
|
||||||
|
@ -2515,12 +2515,21 @@ gfc_resolve_filepos (gfc_filepos *fp)
|
|||||||
if (!gfc_reference_st_label (fp->err, ST_LABEL_TARGET))
|
if (!gfc_reference_st_label (fp->err, ST_LABEL_TARGET))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (!fp->unit && (fp->iostat || fp->iomsg))
|
||||||
|
{
|
||||||
|
locus where;
|
||||||
|
where = fp->iostat ? fp->iostat->where : fp->iomsg->where;
|
||||||
|
gfc_error ("UNIT number missing in statement at %L", &where);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (fp->unit->expr_type == EXPR_CONSTANT
|
if (fp->unit->expr_type == EXPR_CONSTANT
|
||||||
&& fp->unit->ts.type == BT_INTEGER
|
&& fp->unit->ts.type == BT_INTEGER
|
||||||
&& mpz_sgn (fp->unit->value.integer) < 0)
|
&& mpz_sgn (fp->unit->value.integer) < 0)
|
||||||
{
|
{
|
||||||
gfc_error ("UNIT number in statement at %L must be non-negative",
|
gfc_error ("UNIT number in statement at %L must be non-negative",
|
||||||
&fp->unit->where);
|
&fp->unit->where);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/66979
|
||||||
|
gfortran.dg/pr66979.f90: new test.
|
||||||
|
|
||||||
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
2015-10-01 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/67616
|
PR fortran/67616
|
||||||
|
7
gcc/testsuite/gfortran.dg/pr66979.f90
Normal file
7
gcc/testsuite/gfortran.dg/pr66979.f90
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
! { dg-do compile }
|
||||||
|
! PR fortran/66979
|
||||||
|
program p
|
||||||
|
implicit none
|
||||||
|
integer::i
|
||||||
|
flush (iostat=i) ! { dg-error "UNIT number missing" }
|
||||||
|
end program p
|
Loading…
Reference in New Issue
Block a user