[PATCH] Fix memory leak in C++ pretty printer
Manuel López-Ibáñez
lopezibanez@gmail.com
Mon May 11 13:30:00 GMT 2015
On 11/05/15 03:34, Patrick Palka wrote:
> In gcc/cp/error.c we initialize the C++ pretty printer object twice:
> first during statics initialization and later in a placement-new in
> init_error(). This double-initialization causes a memory leak of about
> 7kb according to valgrind. I don't see a reason to initialize the
> object a second time so I elected to remove init_error().
I seem to remember there is some issue with the constructors when using static
initialization that requires the placement-new. We also do the placement-new
dance in the other FEs and the reason should be the same.
My preference would be to replace the static with a pointer and placement-new
with proper new and delete, but see:
https://gcc.gnu.org/ml/gcc-patches/2014-12/msg00910.html
If you change it here, please change it everywhere else where we use
placement-new, such that all FEs are consistent on this.
Cheers,
Manuel.
More information about the Gcc-patches
mailing list