I have a Test-Case to verify a '_declspec( novtable )' declaration for a base class.
So, I declared a class CClassA with the '_declspec( novtable )' specificator and I didn't use
a 'virtual' keyword for any members of the class including the destructor. The Intel C++ compiler
displays a 'remark #444':
remark #444: destructor for base class "SomeClass" (declared at line nnnn) is not virtual
Here is some real example of the output:
------ Build started: Project: IccTestApp, Configuration: Debug Win32 ------
Compiling with Intel C++ Compiler XE 126.96.36.1990 [IA-32]... (Intel C++ Environment)
../PrtTests.cpp(1582): remark #444: destructor for base class "CClassA" (declared at line 1567) is not virtual
class CClassB : public CClassA
Linking... (Intel C++ Environment)
xilink: executing 'link'
Creating library ..\\Debug\\IccTestAppD.lib and object ..\\Debug\\IccTestAppD.exp
Embedding manifest... (Microsoft VC++ Environment)
IccTestApp - 0 error(s), 0 warning(s), 1 remark(s)
In case whena baseclass is declared with '_declspec( novtable )' specificator Intel C++ compiler
shouldn't display the remark.
If I declare a destructor of the class CClassA as virtual the Virtual Table will be created and it will override
the '_declspec( novtable )' declaration for the class.