[cfe-dev] Inlining temporary destructors in the analyzer

Manuel Klimek klimek at google.com
Fri Aug 8 11:14:48 PDT 2014


On Fri, Aug 8, 2014 at 6:27 PM, Jordan Rose <jordan_rose at apple.com> wrote:

> >
> > Ok, after trying to craft a lengthy response, I think I finally
> understand :)
> >
> > The problem really is that to correctly model inlining of temp dtors for
> parameters, we have to correctly mark the regions as "escaping" (thus all
> it's content is unknown) when either a) we don't inline the function call
> itself (perhaps because we don't actually see the implementation), or b)
> the data escapes within the inlined function.
> >
> > I updated the patch to not inline temporary destructors that bind to
> parameters.
> > I'm not sure whether inlining the constructors in those cases is benign
> (it seems like it would be).
> >
> > Thanks,
> > /Manuel
> >
>
> It probably is benign as long as the destructor is in the CFG at all. (If
> it's not, it could result in an unbalanced allocation. Which is true of
> methods as well, but more likely in a constructor.)
>

Yep it is - we just return false from shouldInlineCall...  So if that's OK
I think http://reviews.llvm.org/D4740 is ready for review :D

Thanks!
/Manuel



>
> Jordan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140808/53779c24/attachment.html>


More information about the cfe-dev mailing list