diff options
Diffstat (limited to 'gcc/fortran/symbol.c')
-rw-r--r-- | gcc/fortran/symbol.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index 4b6c6e4..c125865 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -25,6 +25,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include <string.h> #include <stdio.h> #include <stdlib.h> +#include <assert.h> #include "gfortran.h" #include "parse.h" @@ -1614,6 +1615,8 @@ gfc_get_namespace (gfc_namespace * parent) } } + ns->refs = 1; + return ns; } @@ -2228,6 +2231,11 @@ gfc_free_namespace (gfc_namespace * ns) if (ns == NULL) return; + ns->refs--; + if (ns->refs > 0) + return; + assert (ns->refs == 0); + gfc_free_statements (ns->code); free_sym_tree (ns->sym_root); |