re PR fortran/41093 (memory leaks with gfc_namespace)
authorTobias Burnus <burnus@net-b.de>
Mon, 27 Aug 2012 12:07:43 +0000 (14:07 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Mon, 27 Aug 2012 12:07:43 +0000 (14:07 +0200)
commit6f79f4d1d6c6e3dcb0231404969882726d31a50c
tree35954802481b336b7827eb81f61dda5ed4be17f6
parent1d6368551e85cac41df6df4234d865918b693319
re PR fortran/41093 (memory leaks with gfc_namespace)

2012-08-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/41093
        * gfortran.h (gfc_common_head): Add "int refs".
        * match.c (gfc_match_common): Increment refs.
        * resolve.c (resolve_symbol): Only increment formal_ns->refs
        if formal_ns is not sym->ns.
        * symbol.c (gfc_free_symbol): Only free formal_ns if
        if formal_ns is not sym->ns. Free common_block if refs is one.
        (gfc_release_symbol): Release formal_ns only if the
        symbol is not ENTRY of a module.
        * decl.c (get_proc_name): Don't increment gfc_current_ns->refs.
        * parse.c (parse_interface): Incement proc_unit->refs++ for
        proc-pointer result variables.
        * module.c (mio_symbol): Don't increase sym->refs for its
        use in sym->formal_ns->proc_name.

From-SVN: r190710
gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/gfortran.h
gcc/fortran/match.c
gcc/fortran/module.c
gcc/fortran/parse.c
gcc/fortran/resolve.c
gcc/fortran/symbol.c