diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-09-16 17:55:38 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2016-09-16 17:55:38 +0000 |
commit | 970d208bbd3b75c1d813994970c70a204ca0802e (patch) | |
tree | 479051f0bfcb474681d6d794d5fd09b133bafdb6 | |
parent | c632cb2d5cc7a3d1cf4ae260bd7591005b62802c (diff) |
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.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@240191 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/fortran/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/pr77612.f90 | 13 |
4 files changed, 29 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ffc859a4128..5954c73f404 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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. diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index b5242394cef..c83e9d4d791 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -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; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2cb03482ba2..3c992548d11 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/gfortran.dg/pr77612.f90 b/gcc/testsuite/gfortran.dg/pr77612.f90 new file mode 100644 index 00000000000..7bc5a492c78 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr77612.f90 @@ -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 |