diff options
| author | Louis Krupp <louis.krupp@zoho.com> | 2015-10-26 19:18:08 +0000 |
|---|---|---|
| committer | Louis Krupp <lkrupp@gcc.gnu.org> | 2015-10-26 19:18:08 +0000 |
| commit | 388902dab9e4b152931ed7c1b6923a43039b546d (patch) | |
| tree | f41ac17695569bc67b62d585d4e84326662be4a5 /gcc/fortran/symbol.c | |
| parent | 96f3dd0a661a222f0add68a508a1307e3d619157 (diff) | |
| download | gcc-388902dab9e4b152931ed7c1b6923a43039b546d.zip gcc-388902dab9e4b152931ed7c1b6923a43039b546d.tar.gz gcc-388902dab9e4b152931ed7c1b6923a43039b546d.tar.bz2 | |
re PR fortran/66056 (ICEs and endless compilation for lonely labels/numbers in type)
2015-10-26 Louis Krupp <louis.krupp@zoho.com>
PR fortran/66056
* fortran.h: Include namespace pointer in statement label
structure.
* symbol.c (gfc_get_st_label): Store pointer to namespace
that owns the statement label tree in each label.
(gfc_free_st_label): Use namespace owning statement label
tree when deleting statement label.
* io.c: Initialize format_asterisk with NULL namespace pointer.
2015-10-26 Louis Krupp <louis.krupp@zoho.com>
PR fortran/66056
* gfortran.dg/empty_label_typedecl.f90: New test
From-SVN: r229390
Diffstat (limited to 'gcc/fortran/symbol.c')
| -rw-r--r-- | gcc/fortran/symbol.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index a9a0dc0..bd7758b 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -2195,7 +2195,7 @@ gfc_free_st_label (gfc_st_label *label) if (label == NULL) return; - gfc_delete_bbt (&gfc_current_ns->st_labels, label, compare_st_labels); + gfc_delete_bbt (&label->ns->st_labels, label, compare_st_labels); if (label->format != NULL) gfc_free_expr (label->format); @@ -2260,6 +2260,7 @@ gfc_get_st_label (int labelno) lp->value = labelno; lp->defined = ST_LABEL_UNKNOWN; lp->referenced = ST_LABEL_UNKNOWN; + lp->ns = ns; gfc_insert_bbt (&ns->st_labels, lp, compare_st_labels); |
