aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2019-01-10 01:11:51 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2019-01-10 01:11:51 +0000
commit8c94b8dad232c35a3d713c5df782e90ee560985f (patch)
treeb1c9987f103a79f386cc9a9b14d0de92e5d066af
parent3856c6bbb45d76572e259a503fece36bca65676f (diff)
downloadgcc-8c94b8dad232c35a3d713c5df782e90ee560985f.zip
gcc-8c94b8dad232c35a3d713c5df782e90ee560985f.tar.gz
gcc-8c94b8dad232c35a3d713c5df782e90ee560985f.tar.bz2
re PR fortran/88376 (ICE in is_illegal_recursion, at fortran/resolve.c:1689)
2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88376 * resolve.c (is_illegal_recursion): Remove an assert(). 2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88376 * gfortran.dg/pr88376.f90: New test. From-SVN: r267793
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/resolve.c2
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/pr88376.f908
4 files changed, 18 insertions, 5 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 9a030c8..d96f2c1 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,13 +1,16 @@
+2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/88376
+ * resolve.c (is_illegal_recursion): Remove an assert().
+
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
PR other/16615
-
* expr.c: Change "can not" to "cannot".
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
PR other/16615
-
* class.c: Mechanically replace "can not" with "cannot".
* decl.c: Likewise.
* expr.c: Likewise.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index a681eca..d18f2d8 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -1686,8 +1686,6 @@ is_illegal_recursion (gfc_symbol* sym, gfc_namespace* context)
|| gfc_fl_struct (sym->attr.flavor))
return false;
- gcc_assert (sym->attr.flavor == FL_PROCEDURE);
-
/* If we've got an ENTRY, find real procedure. */
if (sym->attr.entry && sym->ns->entries)
proc_sym = sym->ns->entries->sym;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fc8395f..a1786d1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,7 +1,11 @@
+2019-01-09 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ PR fortran/88376
+ * gfortran.dg/pr88376.f90: New test.
+
2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
PR other/16615
-
* g++.dg/lto/odr-1_1.C: Update diagnostic message patterns to replace
"can not" with "cannot".
* gfortran.dg/common_15.f90: Likewise.
diff --git a/gcc/testsuite/gfortran.dg/pr88376.f90 b/gcc/testsuite/gfortran.dg/pr88376.f90
new file mode 100644
index 0000000..5dd0181
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr88376.f90
@@ -0,0 +1,8 @@
+! { dg-do compile }
+module m
+ integer :: n
+contains
+ subroutine s
+ character(n(3)) :: c ! { dg-error "not a function" }
+ end
+end