This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/49466] Memory leak with assignment of extended derived types
- From: "townsend at astro dot wisc.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 19 Jun 2011 15:39:47 +0000
- Subject: [Bug fortran/49466] Memory leak with assignment of extended derived types
- Auto-submitted: auto-generated
- References: <bug-49466-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49466
--- Comment #2 from Rich Townsend <townsend at astro dot wisc.edu> 2011-06-19 15:39:28 UTC ---
(In reply to comment #1)
> (In reply to comment #0)
> > In the attached sample code, which is a reduced test case from the full code,
> > the assignment "as_b = as_a" leaks memory from the U(:) allocatable component
> > (which is defined in state_t, the parent type), but not from the W(:)
> > allocatable component (which is defined in astate_t).
>
> Sorry, I'm not able to reproduce the memory leak with gfortran version 4.5 and
> valgrind. Could you please tell me which gfortran version you use and how you
> detect the memory leak?
This is 4.7.0 (svn) running on OS X 10.6.7. valgrind output:
==32629== Memcheck, a memory error detector
==32629== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==32629== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info
==32629== Command: ./evolve_aflow
==32629==
--32629-- ./evolve_aflow:
--32629-- dSYM directory is missing; consider using --dsymutil=yes
==32629==
==32629== HEAP SUMMARY:
==32629== in use at exit: 4,004,088 bytes in 1,002 blocks
==32629== total heap usage: 2,019 allocs, 1,017 frees, 8,012,001 bytes
allocated
==32629==
==32629== 3,996,000 bytes in 999 blocks are definitely lost in loss record 4 of
4
==32629== at 0x10001079F: malloc (vg_replace_malloc.c:236)
==32629== by 0x100000C27: MAIN__ (in ./evolve_aflow)
==32629== by 0x100000DA2: main (in ./evolve_aflow)
==32629==
==32629== LEAK SUMMARY:
==32629== definitely lost: 3,996,000 bytes in 999 blocks
==32629== indirectly lost: 0 bytes in 0 blocks
==32629== possibly lost: 0 bytes in 0 blocks
==32629== still reachable: 8,088 bytes in 3 blocks
==32629== suppressed: 0 bytes in 0 blocks
==32629== Reachable blocks (those to which a pointer was found) are not shown.
==32629== To see them, rerun with: --leak-check=full --show-reachable=yes
==32629==
==32629== For counts of detected and suppressed errors, rerun with: -v
==32629== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)