re PR fortran/77960 (ICE in gfc_conv_ss_startstride, at fortran/trans-array.c:3966)
2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77960 * io.c (match_io_element): input-item cannot be an external function. 2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77960 * gfortran.dg/pr77960.f90: New test. From-SVN: r268097
This commit is contained in:
parent
8558af5023
commit
5131b898e5
|
@ -1,3 +1,8 @@
|
||||||
|
2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/77960
|
||||||
|
* io.c (match_io_element): input-item cannot be an external function.
|
||||||
|
|
||||||
2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
|
2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
Paul Thomas <pault@gcc.gnu.org>
|
Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -3610,6 +3610,16 @@ match_io_element (io_kind k, gfc_code **cpp)
|
||||||
m = gfc_match_variable (&expr, 0);
|
m = gfc_match_variable (&expr, 0);
|
||||||
if (m == MATCH_NO)
|
if (m == MATCH_NO)
|
||||||
gfc_error ("Expected variable in READ statement at %C");
|
gfc_error ("Expected variable in READ statement at %C");
|
||||||
|
|
||||||
|
if (m == MATCH_YES
|
||||||
|
&& expr->expr_type == EXPR_VARIABLE
|
||||||
|
&& expr->symtree->n.sym->attr.external)
|
||||||
|
{
|
||||||
|
gfc_error ("Expecting variable or io-implied-do at %L",
|
||||||
|
&expr->where);
|
||||||
|
m = MATCH_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-01-19 Steven G. Kargl <kargl@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR fortran/77960
|
||||||
|
* gfortran.dg/pr77960.f90: New test.
|
||||||
|
|
||||||
2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
|
2018-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
Paul Thomas <pault@gcc.gnu.org>
|
Paul Thomas <pault@gcc.gnu.org>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
! { dg-do compile }
|
||||||
|
! PR fortran/77960
|
||||||
|
procedure(g), pointer :: f
|
||||||
|
f => g
|
||||||
|
read(99) f ! { dg-error "Expecting variable" }
|
||||||
|
contains
|
||||||
|
function g() result(z)
|
||||||
|
integer :: z(2)
|
||||||
|
z = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subroutine bar(x)
|
||||||
|
integer, external :: x
|
||||||
|
read(*,*) x ! { dg-error "Expecting variable" }
|
||||||
|
end subroutine
|
Loading…
Reference in New Issue