aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/fortran/ChangeLog8
-rw-r--r--gcc/fortran/symbol.c5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr69497.f908
4 files changed, 23 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 12348f1..9ae0cc7 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,11 @@
+2018-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+ Dominique d'Humieres <dominiq@gcc.gnu.org>
+
+ PR fortran/84506
+ * symbol.c (gfc_free_namespace): Delete the assert and only if
+ refs count is equals zero, free the namespace. Otherwise,
+ something is halfway and other errors will resound.
+
2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/70068
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c
index ce6b1e9..997d90b 100644
--- a/gcc/fortran/symbol.c
+++ b/gcc/fortran/symbol.c
@@ -4037,10 +4037,9 @@ gfc_free_namespace (gfc_namespace *ns)
return;
ns->refs--;
- if (ns->refs > 0)
- return;
- gcc_assert (ns->refs == 0);
+ if (ns->refs != 0)
+ return;
gfc_free_statements (ns->code);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1e1f515..1ea6029 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-03-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/89497
+ * gfortran.dg/pr89497.f90: New test.
+
2018-03-24 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/70068
diff --git a/gcc/testsuite/gfortran.dg/pr69497.f90 b/gcc/testsuite/gfortran.dg/pr69497.f90
new file mode 100644
index 0000000..7b57ee1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr69497.f90
@@ -0,0 +1,8 @@
+! { dg-do compile }
+! PR89497
+program p
+ block
+ do
+ end block ! { dg-error "Expecting END DO statement" }
+end ! { dg-error "END DO statement expected" }
+! { dg-excess-errors "Unexpected end of file" }