aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2016-11-01 23:13:10 +0000
committerMark Wielaard <mark@gcc.gnu.org>2016-11-01 23:13:10 +0000
commita3f3eec079677bc6042dc7b00e8f85f644b97d57 (patch)
treec6c4281d638ba42a7cbf50facf09bdb390eef6ed /gcc/tree-inline.c
parentbe6218568d56e62aa3b53d962eaf41dd03b76701 (diff)
downloadgcc-a3f3eec079677bc6042dc7b00e8f85f644b97d57.zip
gcc-a3f3eec079677bc6042dc7b00e8f85f644b97d57.tar.gz
gcc-a3f3eec079677bc6042dc7b00e8f85f644b97d57.tar.bz2
libiberty: Fix memory leak in ada_demangle when symbol cannot be demangled.
When a symbol cannot be demangled in ada_demangle a new demangled VEC will be allocated without deleting the demangled VEC already in use. Running testsuite/test-demangle under valgrind will show the leak for this entry in testsuite/demangle-expected: # Elaborated flag (not demangled) --format=gnat x_E <x_E> 11 bytes in 1 blocks are definitely lost in loss record 1 of 1 at 0x4C27BE3: malloc (vg_replace_malloc.c:299) by 0x413FE7: xmalloc (xmalloc.c:148) by 0x4025EC: ada_demangle (cplus-dem.c:930) by 0x402C59: cplus_demangle (cplus-dem.c:892) by 0x400FEC: main (test-demangle.c:317) libiberty/ChangeLog: * cplus-dem.c (ada_demangle): Initialize demangled to NULL and XDELETEVEC demangled when unknown. From-SVN: r241760
Diffstat (limited to 'gcc/tree-inline.c')
0 files changed, 0 insertions, 0 deletions