On Sat, May 10, 2014 at 4:12 PM, Richard Smith <[email protected]>wrote:

>
> On 10 May 2014 12:32, "Nico Weber" <[email protected]> wrote:
> >
> > Author: nico
> > Date: Sat May 10 14:23:28 2014
> > New Revision: 208481
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=208481&view=rev
> > Log:
> > Don't leak default arg tokens on invalid destructors or conversion
> functions.
> >
> > Fixes PR19689, and possibly the last leak in clang (PR19521). PR19689
> contains
> > a few suggestions on how to make the default argument token code a bit
> more
> > solid, these changes can possibly be landed in follow-ups.
> >
> > Modified:
> >     cfe/trunk/include/clang/Sema/DeclSpec.h
> >
> > Modified: cfe/trunk/include/clang/Sema/DeclSpec.h
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/DeclSpec.h?rev=208481&r1=208480&r2=208481&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/include/clang/Sema/DeclSpec.h (original)
> > +++ cfe/trunk/include/clang/Sema/DeclSpec.h Sat May 10 14:23:28 2014
> > @@ -1231,6 +1231,10 @@ struct DeclaratorChunk {
> >      ///
> >      /// This is used in various places for error recovery.
> >      void freeParams() {
> > +      if (Params) {
> > +        delete Params->DefaultArgTokens;
> > +        Params->DefaultArgTokens = nullptr;
>
> Doesn't Params point to an array? Looks like this will still leak the
> second and subsequent default arguments.
>
I believe it points to a CachedTokens, which is a typedef for
a SmallVector<Token, 4> – so I think it might be correct as-is?

> > +      }
> >        if (DeleteParams) {
> >          delete[] Params;
> >          DeleteParams = false;
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > [email protected]
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to