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 (

5 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.



an update to this issue. it is fixed in the 16.0 beta. If you'd like to join our beta program, please see Intel® Parallel Studio XE 2016 Beta program has begun  


Leave a Comment

Please sign in to add a comment. Not a member? Join today