diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2006-01-13 21:09:24 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2006-01-13 21:09:24 +0000 |
commit | b5cbe7eee3cb428d07035b33c3d79684684e93bd (patch) | |
tree | 73dc7b36452565e4319d896f996e0d4c5bb875a3 /gcc/fortran/symbol.c | |
parent | 47adc0164ed1ef318809797c43ff179cc756c90c (diff) | |
download | gcc-b5cbe7eee3cb428d07035b33c3d79684684e93bd.zip gcc-b5cbe7eee3cb428d07035b33c3d79684684e93bd.tar.gz gcc-b5cbe7eee3cb428d07035b33c3d79684684e93bd.tar.bz2 |
[multiple changes]
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 Bernhard Fischer <rep.nop@aon.at>
PR fortran/25756
* gfortran.dg/label_3.f90: New test.
From-SVN: r109674
Diffstat (limited to 'gcc/fortran/symbol.c')
-rw-r--r-- | gcc/fortran/symbol.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index bda1c1d..6eec853 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -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. */ |