Controls the issuing of warning messages for possible unintended logical errors.
#pragma extended_errorcheck on | off | reset
If you enable this pragma, the compiler generates a warning message (not an error) if it encounters some common programming errors:
It also issues a warning message when it encounters a delete operator for a class or structure that has not been defined yet. The listing below shows an example.
#pragma extended_errorcheck on
struct X;
int func(X *xp)
{
delete xp; // Warning: deleting incomplete type X
}
enum Day { Sunday, Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday } d;
d = 5; /* WARNING */
d = Monday; /* OK */
d = (Day)3; /* OK */
int MyInit(void)
{
int err = GetMyResources();
if (err != -1)
{
err = GetMoreResources();
}
return; /* WARNING: empty return statement */
}
A non-void function with a proper return statement, listed below, shows how to prevent this warning message.
int MyInit(void)
{
int err = GetMyResources();
if (err != -1)
{
err = GetMoreResources();
}
return err; /* OK */
}
By default, this setting is off .