[llvm] r217756 - Fix a non-virtual destructor warning introduced in r217747.

Hans Wennborg hans at chromium.org
Tue Sep 16 09:52:56 PDT 2014


On Mon, Sep 15, 2014 at 12:33 PM, Frédéric Riss <friss at apple.com> wrote:
>
> On 15 Sep 2014, at 20:19, David Blaikie <dblaikie at gmail.com> wrote:
>
>
>
> On Mon, Sep 15, 2014 at 3:38 AM, Frederic Riss <friss at apple.com> wrote:
>>
>> Author: friss
>> Date: Mon Sep 15 05:38:13 2014
>> New Revision: 217756
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=217756&view=rev
>> Log:
>> Fix a non-virtual destructor warning introduced in r217747.
>>
>> Modified:
>>     llvm/trunk/lib/DebugInfo/DWARFUnit.h
>>
>> Modified: llvm/trunk/lib/DebugInfo/DWARFUnit.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFUnit.h?rev=217756&r1=217755&r2=217756&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/DebugInfo/DWARFUnit.h (original)
>> +++ llvm/trunk/lib/DebugInfo/DWARFUnit.h Mon Sep 15 05:38:13 2014
>> @@ -35,6 +35,8 @@ public:
>>    /// Returns the Unit that contains the given section offset in the
>>    /// same section this Unit originated from.
>>    virtual DWARFUnit *getUnitForOffset(uint32_t Offset) const = 0;
>> +
>> +  virtual ~DWARFUnitSectionBase() {}
>
>
> Since these objects are never polymorphically owned, a better fix for this
> would be to make the base dtor protected, and the derived classes final.
> That will satisfy the warning without adding an unneeded vtable
> entry/virtual call overhead.
>
>
> I’ll do that in a followup commit tomorrow.

This is causing problems for me after r217871:

In file included from
third_party/llvm/llvm/lib/DebugInfo/DWARFCompileUnit.h:13:0,
                 from
third_party/llvm/llvm/lib/DebugInfo/DWARFDebugInfoEntry.cpp:11:
third_party/llvm/llvm/lib/DebugInfo/DWARFUnit.h: In instantiation of
'class llvm::DWARFUnitSection<llvm::DWARFCompileUnit>':
third_party/llvm/llvm/lib/DebugInfo/DWARFContext.h:32:38:   required from here
third_party/llvm/llvm/lib/DebugInfo/DWARFUnit.h:45:7: error: 'class
llvm::DWARFUnitSection<llvm::DWARFCompileUnit>' has virtual functions
and accessible non-virtual destructor [-Werror=non-virtual-dtor]

 - Hans




More information about the llvm-commits mailing list