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 (

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.



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?




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



Login to leave a comment.