<div dir="ltr">You're right, I only need the base destructor virtual, I got a little over-eager in removing the leak. Fixed both suggestions in r263335.<div>Thanks,</div><div>Teresa<br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 11, 2016 at 8:26 PM, Mehdi Amini <span dir="ltr"><<a href="mailto:mehdi.amini@apple.com" target="_blank">mehdi.amini@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi Teresa,<br>
<span class=""><br>
> On Mar 11, 2016, at 5:23 PM, Teresa Johnson via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
><br>
> Author: tejohnson<br>
> Date: Fri Mar 11 19:23:57 2016<br>
> New Revision: 263317<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=263317&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=263317&view=rev</a><br>
> Log:<br>
> Fix a memory leak due to missing virtual destructors<br>
><br>
> Caused a couple of sanitizer bot failures in ThinLTO tests due to<br>
> r263275.<br>
><br>
> Modified:<br>
>    llvm/trunk/include/llvm/IR/FunctionInfo.h<br>
><br>
> Modified: llvm/trunk/include/llvm/IR/FunctionInfo.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/FunctionInfo.h?rev=263317&r1=263316&r2=263317&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/FunctionInfo.h?rev=263317&r1=263316&r2=263317&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/include/llvm/IR/FunctionInfo.h (original)<br>
> +++ llvm/trunk/include/llvm/IR/FunctionInfo.h Fri Mar 11 19:23:57 2016<br>
> @@ -88,6 +88,8 @@ protected:<br>
>       : Kind(K), Linkage(Linkage) {}<br>
><br>
> public:<br>
> +  virtual ~GlobalValueSummary() {}<br>
<br>
</span>= default? </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<span class=""><br>
> +<br>
>   /// Which kind of summary subclass this is.<br>
>   SummaryKind getSummaryKind() const { return Kind; }<br>
><br>
> @@ -136,6 +138,7 @@ public:<br>
>   /// Summary constructors.<br>
>   FunctionSummary(GlobalValue::LinkageTypes Linkage, unsigned NumInsts)<br>
>       : GlobalValueSummary(FunctionKind, Linkage), InstCount(NumInsts) {}<br>
> +  virtual ~FunctionSummary() {}<br>
<br>
</span>This is not needed (or I don't see why?).<br>
<span class=""><font color="#888888"><br>
--<br>
Mehdi<br>
</font></span><div class=""><div class="h5"><br>
<br>
><br>
>   /// Check if this is a function summary.<br>
>   static bool classof(const GlobalValueSummary *GVS) {<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><span style="font-family:Times;font-size:medium"><table cellspacing="0" cellpadding="0"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Teresa Johnson |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a> |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"> 408-460-2413</td></tr></tbody></table></span></div>
</div></div></div>