extended_errorcheck

Controls the issuing of warning messages for possible unintended logical errors.

Syntax
#pragma extended_errorcheck on | off | reset
Remarks

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.

Listing 1. Attempting to delete an undefined structure
#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.

Listing 4. A non-void function with a proper return statement
int MyInit(void)
{
  int err = GetMyResources();
  if (err != -1)
  {
    err = GetMoreResources();
  }
  return err; /* OK */
}

By default, this setting is off .

Related information
maxerrorcount
message
showmessagenumber
show_error_filestack
suppress_warnings
sym
unused
warning
warning_errors
warn_any_ptr_int_conv
warn_emptydecl
warn_extracomma
warn_filenamecaps
warn_filenamecaps_system
warn_hiddenlocals
warn_illpragma
warn_illtokenpasting
warn_illunionmembers
warn_impl_f2i_conv
warn_impl_i2f_conv
warn_impl_s2u_conv
warn_implicitconv
warn_largeargs
warn_missingreturn
warn_no_side_effect
warn_padding
warn_pch_portability
warn_possunwant
warn_ptr_int_conv
warn_resultnotused
warn_undefmacro
warn_uninitializedvar
warn_unusedarg
warn_unusedvar