2006-01-13 Steven G. Kargl <kargls@comcast.net>
authorkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jan 2006 21:09:24 +0000 (21:09 +0000)
committerkargl <kargl@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jan 2006 21:09:24 +0000 (21:09 +0000)
        PR fortran/25756
        * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
        unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
        from g95).

2006-01-13  Bernhard Fischer  <rep.nop@aon.at>

        PR fortran/25756
        * gfortran.dg/label_3.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109674 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/symbol.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/label_3.f90 [new file with mode: 0644]

index 5f18c76..29a4c77 100644 (file)
@@ -1,3 +1,10 @@
+2006-01-13  Steven G. Kargl  <kargls@comcast.net>
+
+       PR fortran/25756
+       * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
+       unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
+       from g95).
+
 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
 
        * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement
index bda1c1d..6eec853 100644 (file)
@@ -1473,21 +1473,25 @@ gfc_get_component_attr (symbol_attribute * attr, gfc_component * c)
    occurs.  */
 
 void
-gfc_free_st_label (gfc_st_label * l)
+gfc_free_st_label (gfc_st_label * label)
 {
 
-  if (l == NULL)
+  if (label == NULL)
     return;
 
-  if (l->prev)
-    (l->prev->next = l->next);
+  if (label->prev)
+    label->prev->next = label->next;
 
-  if (l->next)
-    (l->next->prev = l->prev);
+  if (label->next)
+    label->next->prev = label->prev;
 
-  if (l->format != NULL)
-    gfc_free_expr (l->format);
-  gfc_free (l);
+  if (gfc_current_ns->st_labels == label)
+    gfc_current_ns->st_labels = label->next;
+
+  if (label->format != NULL)
+    gfc_free_expr (label->format);
+
+  gfc_free (label);
 }
 
 /* Free a whole list of gfc_st_label structures.  */
index 1a59f59..daf4596 100644 (file)
@@ -1,3 +1,8 @@
+2006-01-13  Bernhard Fischer  <rep.nop@aon.at>
+
+       PR fortran/25756
+       * gfortran.dg/label_3.f90: New test.
+
 2006-01-13 Daniel Berlin  <dberlin@dberlin.org>
 
        PR tree-optimization/25771
diff --git a/gcc/testsuite/gfortran.dg/label_3.f90 b/gcc/testsuite/gfortran.dg/label_3.f90
new file mode 100644 (file)
index 0000000..5cebe93
--- /dev/null
@@ -0,0 +1,5 @@
+! { dg-do compile }
+! PR fortran/25756.
+! This used to ICE due to the space after the label.
+1 ! { dg-warning "Ignoring statement label in empty statement" }
+end