re PR fortran/77612 (ICE on invalid character len in contained procedure)

2016-09-16  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77612
	* decl.c (char_len_param_value): Check parent namespace for 
	seen_implicit_none.


2016-09-16  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/77612
	* gfortran.dg/pr77612.f90: New test.

From-SVN: r240191
This commit is contained in:
Steven G. Kargl 2016-09-16 17:55:38 +00:00
parent 426042f5f2
commit 8d987deb5b
4 changed files with 29 additions and 3 deletions

View file

@ -1,4 +1,11 @@
2016-09-16 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77612
* decl.c (char_len_param_value): Check parent namespace for
seen_implicit_none.
2016-09-15 Louis Krupp <louis.krupp@zoho.com>
PR fortran/69963
* parse.c (reject_statement): Clear charlen pointers in implicit
character typespecs before those charlen structures are freed.

View file

@ -920,9 +920,10 @@ char_len_param_value (gfc_expr **expr, bool *deferred)
t = gfc_reduce_init_expr (e);
if (!t && (e->ts.type == BT_UNKNOWN
&& e->symtree->n.sym->attr.untyped == 1
&& e->symtree->n.sym->ns->seen_implicit_none == 1))
if (!t && e->ts.type == BT_UNKNOWN
&& e->symtree->n.sym->attr.untyped == 1
&& (e->symtree->n.sym->ns->seen_implicit_none == 1
|| e->symtree->n.sym->ns->parent->seen_implicit_none == 1))
{
gfc_free_expr (e);
goto syntax;

View file

@ -1,3 +1,8 @@
2016-09-16 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/77612
* gfortran.dg/pr77612.f90: New test.
2016-09-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/torture/pr70421.c: Require int32plus.

View file

@ -0,0 +1,13 @@
! { dg-do compile }
program bad_len
implicit none
contains
subroutine sub
character(len = ICE) :: line ! { dg-error "INTEGER expression expected" }
end subroutine
end program