aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/symbol.c
diff options
context:
space:
mode:
authorLouis Krupp <louis.krupp@zoho.com>2015-10-26 19:18:08 +0000
committerLouis Krupp <lkrupp@gcc.gnu.org>2015-10-26 19:18:08 +0000
commit388902dab9e4b152931ed7c1b6923a43039b546d (patch)
treef41ac17695569bc67b62d585d4e84326662be4a5 /gcc/fortran/symbol.c
parent96f3dd0a661a222f0add68a508a1307e3d619157 (diff)
downloadgcc-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.c3
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);