ICL emits warning #809 when using defaulted virtual destructors

ICL emits warning #809 when using defaulted virtual destructors

The following code:

struct B
{
    B () = default; 
    virtual ~B () = default;
}; 
 
struct D : public B
{
    virtual ~D () = default;
};

generates this warning:

warning #809: exception specification for virtual function "D::~D" is incompatible with that of overridden function "B::~B"

when compiled with: icl /c /Qstd=c++11

I believe this warning is in error since the defaulted destructors should have the same exception specification.

I'm using the latest Intel C++ Composer XE SP1 Update 1 (14.0.1.139).

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

 

Yes this does look like a spurious warning. I have entered this in our internal bug database as DPD200248506.

thank you for reporting it.

Judy

Hi,

I see DPD200248506 listed as fixed in Update 2 (https://software.intel.com/en-us/articles/intel-composer-xe-2013-compilers-sp1-fixes-list), however that warning persisted, even in Update 3 and 2015 Beta. Could you verify that?

Thanks,

Ricardo

 

Sorry I gave you the wrong tracking number. This is actually DPD200250258 which is still open.

Judy

 

Login to leave a comment.