[llvm-commits] [dragonegg] r150341 - in /dragonegg/trunk: include/dragonegg/ABI.h src/DefaultABI.cpp

Bill Wendling wendling at apple.com
Mon Feb 13 16:16:04 PST 2012


On Feb 13, 2012, at 1:05 PM, Chris Lattner <clattner at apple.com> wrote:

> On Feb 13, 2012, at 12:57 PM, Bill Wendling wrote:
> 
>> On Feb 12, 2012, at 9:13 PM, Chris Lattner <clattner at apple.com> wrote:
>> 
>>> On Feb 12, 2012, at 8:40 PM, Bill Wendling wrote:
>>>>> Modified: dragonegg/trunk/include/dragonegg/ABI.h
>>>>> URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/include/dragonegg/ABI.h?rev=150341&r1=150340&r2=150341&view=diff
>>>>> ==============================================================================
>>>>> --- dragonegg/trunk/include/dragonegg/ABI.h (original)
>>>>> +++ dragonegg/trunk/include/dragonegg/ABI.h Sun Feb 12 09:35:35 2012
>>>>> @@ -42,6 +42,7 @@
>>>>> /// DefaultABIClient - This is a simple implementation of the ABI client
>>>>> /// interface that can be subclassed.
>>>>> struct DefaultABIClient {
>>>>> +  virtual void anchor();
>>>>> virtual ~DefaultABIClient() {}
>>>> 
>>>> Why not just use the d'tor as the anchor instead of a whole other (unused) method?
>>> 
>>> That actually slows down destruction of subclasses by preventing the virtual dtor from being inlined.  It probably doesn't matter in this case though :)
>>> 
>> True, but it's still a virtual call. :-) I mentioned it because there was already a lot of LLVM code which out-lines their d'tors for just this reason...
> 
> Dtor calls from derived class to base class dtors are not virtual, even if the dtor is virtual.  Think about what would happen if they were.
> 
Communism?

;-)

-bw





More information about the llvm-commits mailing list