diff options
author | Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | 2017-12-06 22:55:10 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | 2021-10-29 18:26:27 +0200 |
commit | 7883a7f07c1ad9c8aaccc5bbd96e0ae1fa230c89 (patch) | |
tree | 386260693883ed0ed8018f7b36b665e783eb5b3e /gcc/fortran | |
parent | 5380cf0272800847858e117740efaa6d0d6a3996 (diff) | |
download | gcc-7883a7f07c1ad9c8aaccc5bbd96e0ae1fa230c89.zip gcc-7883a7f07c1ad9c8aaccc5bbd96e0ae1fa230c89.tar.gz gcc-7883a7f07c1ad9c8aaccc5bbd96e0ae1fa230c89.tar.bz2 |
Fortran: Free type-bound procedure structs
compiling gfortran.dg/typebound_proc_31.f90 leaked the type-bound
structs:
56 bytes in 1 blocks are definitely lost.
at 0x4C2CC05: calloc (vg_replace_malloc.c:711)
by 0x151EA90: xcalloc (xmalloc.c:162)
by 0x8E3E4F: gfc_get_typebound_proc(gfc_typebound_proc*) (symbol.c:4945)
by 0x84C095: match_procedure_in_type (decl.c:10486)
by 0x84C095: gfc_match_procedure() (decl.c:6696)
...
gcc/fortran/ChangeLog:
2017-12-06 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* symbol.c (free_tb_tree): Free type-bound procedure struct.
(gfc_get_typebound_proc): Use explicit memcpy for clarity.
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/symbol.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/fortran/symbol.c b/gcc/fortran/symbol.c index c77f3f8..34c0ba2 100644 --- a/gcc/fortran/symbol.c +++ b/gcc/fortran/symbol.c @@ -3832,7 +3832,7 @@ free_tb_tree (gfc_symtree *t) /* TODO: Free type-bound procedure structs themselves; probably needs some sort of ref-counting mechanism. */ - + free (t->n.tb); free (t); } @@ -5073,7 +5073,7 @@ gfc_get_typebound_proc (gfc_typebound_proc *tb0) result = XCNEW (gfc_typebound_proc); if (tb0) - *result = *tb0; + memcpy (result, tb0, sizeof (gfc_typebound_proc)); result->error = 1; latest_undo_chgset->tbps.safe_push (result); |