For example, functions with COBOL linkage cannot return a value; they must return void.
Recovery
Use a valid return type.
The pragma parameter specified is invalid or out of range.
Recovery
Remove the parameter or replace it with one within the range.
A declaration may not begin in a header file and end in the main program file. No precompiled header file is generated.
Recovery
Complete the declaration before the end of the header file.
You can specify the #pragma directive indicated only once in each source file.
Recovery
Remove one of the #pragma &1 statements.
The function specified in #pragma weak should only be defined externally and should not be referenced in the same compilation unit.
Recovery
Split the function definition and the function reference into separate compilation units.
Specifying the second option indicated means the first has no effect.
Recovery
Remove one of the options.
Recovery
Specify a non-empty header file name in the #include directive.
The type conversion will be performed. This can occur in an initialization, assignment, or expression statement. One or more of the function arguments is incompatible with the intended conversion.
Recovery
Change the offending argument type.
Arguments for functions with "C" linkage must be widened before they are passed.
Recovery
Remove "nowiden" option from #pragma argument.
This message traces preprocessor expression evaluation.
Recovery
No response.
This message traces preprocessor #ifdef and #ifndef evaluation.
Recovery
No response.
This messages traces conditional compilation activity.
Recovery
No response.
This #include directive is redundant.
Recovery
Remove the #include directive.
This message traces the activity of the #include directive.
Recovery
No response.
Traces #line directive evaluation.
Recovery
No response.
Traces #line directive evaluation.
Recovery
No response.
Overriding a C keyword with a preprocessor macro may cause unexpected results.
Recovery
Change the name of the macro if necessary.
MARGINS or SEQUENCE option, or #pragma margins or sequence was used to limit the valid text region in a source file.
Recovery
Remove the MARGINS or SEQUENCE option, or remove the #pragma margins or sequence, or specify a more inclusive text region.
Identical macro redefinitions are allowed but not necessary. The amount of whitespace separating tokens have no bearing on whether macros are considered identical.
Recovery
Remove the identical definition if necessary.
Traces conditional compilation activity.
Recovery
No response.
Internal compiler names should not be redefined.
Recovery
Delete the macro definition or change the name of the macro being defined.
Internal compiler names should not be undefined.
Recovery
Delete the undefined macro.
This messages traces conditional compilation activity.
Recovery
No response.
The trigraph sequence will be converted, although a literal interpretation may have been desired.
Recovery
Change the value of the character literal if necessary.
The trigraph sequence will be converted, although a literal interpretation may have been desired.
Recovery
Change the value of the string literal if necessary.
Traces #undef preprocessor directive evaluation.
Recovery
No response.
An attempt is being made to undefine a macro that has not been previously defined.
Recovery
Remove the #undef directive.
The referenced header file has already been #included and will be physically #included again because there is no conditional compilation path in it which results in an empty file.
Recovery
If desired, at the top of the header, test a macro name which is defined by the header to prevent subsequent inclusions.
The referenced header file has already been #included and will not be physically #included again because it is empty.
Recovery
If desired, do not #include the header since it is empty.
The referenced header file has already been #included and will be physically #included again because the inclusion is recursive and the conditional compilation analysis of the header is therefore incomplete.
Recovery
If desired, test a macro name which is defined by the header at the point of inclusion to prevent subsequent inclusions.
The referenced header file has already been #included and will not be physically #included again because conditional compilation would expose no additional source to the compiler.
Recovery
If desired, do not #include the header since it is redundant.
The compiler has finished processing a precompiled header.
Recovery
No response. This message merely traces the activity of the precompiled header feature.
The referenced macro was expanded during the creation of the precompiled header and is now defined differently. This prevents the precompiled header from being used for this compilation.
Recovery
If necessary, redefine the macro, or regenerate the precompiled header
An assertion is defined which was not defined when the precompiled header was generated. Since the effect of the new assertion is unknown, the precompiled header cannot be used for this compilation.
Recovery
Do not define the assertion or regenerate the precompiled header with the new assertion.
A macro is defined which was not defined when the precompiled header was generated. Since the effect of the new macro is unknown, the precompiled header cannot be used for this compilation.
Recovery
Do not define the macro or regenerate the precompiled header with the new macro.
The compiler options in use are not compatible with those used when the precompiled header was generated. The precompiled header cannot be used.
Recovery
Use the same options as when the precompiled header was generated or regenerate the precompiled header with the new options.
The referenced assertion was tested during the creation of the precompiled header and is not defined. This prevents the precompiled header from being used for this compilation.
Recovery
If necessary, redefine the assertion, or regenerate the precompiled header without the assertion.
The referenced macro was expanded during the creation of the precompiled header and is not defined. This prevents the precompiled header from being used for this compilation.
Recovery
If necessary, redefine the macro, or regenerate the precompiled header without the macro.
The precompiled header can not be used for this compilation. A subsequent message will explain the reason.
Recovery
Correct the problem indicated by the subsequent message.
The header file being included is not the next header in the sequence used to generate the precompiled header. The precompiled header cannot be used for this compilation.
Recovery
#include the correct header or regenerate the precompiled header using the new sequence of #include directives.
At least one new placement argument must be specified.
Recovery
Specify an argument in the new placement syntax or remove the new placement.
The __unaligned type qualifier specifies that the symbol accessed through a pointer or a reference is not naturally aligned.
Recovery
Remove the __unaligned qualifier.
The expression operand of a dynamic_cast operator must be a pointer to or an lvalue of a complete class.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The expression operand of a dynamic_cast operator must be a pointer when the target type is a pointer.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The target type of a dynamic_cast operator must be a pointer or reference to a complete class or a pointer to void.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The target type of a dynamic_cast operator must be a pointer to a complete class or a pointer to void when the operand is a pointer type.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The target type of a dynamic_cast operator must be a reference to a complete class when the operand is an lvalue.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
One may only dynamic cast to a non-base class from a polymorphic class. A polymorphic class is a class that has a virtual function or that has a polymorphic base class.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The target type must have the same type qualifiers (or more) as the source type. Note that dynamic_cast may not used to cast away 'const'.
Recovery
Add qualifiers to the target type to match the source type.
The target type of a dynamic_cast operator must be a pointer or reference to a complete class.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The expression operand of a dynamic_cast operator must be a pointer or reference to a complete class.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The expression operand of a dynamic_cast operator must be an lvalue if the target type is a reference.
Recovery
Use the static_cast or reinterpret_cast operator instead of the dynamic_cast operator.
The conversion violates AS/400 pointer rules (See the ILE C/400 Programmers Guide for more information).
Recovery
Use open (void) pointers between AS/400 pointers of different classes.
Functions in IDL must have at least one named parameter before a ... parameter.
Recovery
Add a named parameter before the ... parameter.
The user has a variable or field name that conflicts with an IDL keyword or type.
Recovery
Rename the variable.
The user has a type_info class definition that conflicts with the standard.
Recovery
Rename the user type_info class definition.
The name conflicts with a previous IDL name in this compilation unit.
Recovery
Rename at least one name/type.
On PowerPc, #pragma weak only takes one parameter, the weak function.
Recovery
Before calling the weak function on PowerPC, check to be sure it's there.
On Intel, #pragma weak takes two parameters, the weak function and the default one.
Recovery
On Intel, a default function must be provided for use when the weak function is not linked in.
You have definition for a symbol from a System Include file. If you want browser information for all symbols, use the -Fb* option.
Recovery
Ignore the message, or recompile using the -Fb* option.
In each compilation unit, only one of "main" and "WinMain" is allowed.
Recovery
Remove either "main" or "WinMain".
You have declared a thread object with a destructor. Destructor calls of thread local storage objects are not fully supported on NT.
Recovery
Allow enough time to the process so that its threads can end gracefully before the process terminates.
![]()
Summary of Compiler Error Messages