### Compiler Error Messages EDC3400 - EDC3499

EDC3400
  Label "&1" is undefined.

  The specified label is used but is not defined.

  Recovery

  Define the label before using it.

EDC3401
  The initializer for enumerator "&1" must be an integral constant expression.

  The value of an enumerator must be a constant expression that is promotable to a signed int value. A constant expression has a value that can be determined during compilation and does not change during program execution.

  Recovery

  Change the initializer to an integral constant expression.

EDC3402
  Static member template encountered

  Templates for static data members are only partially supported, and may cause linker errors if they are overridden by explicit definitions, or if they occur in library objects. For more details, see the help on using templates in C++ programs.

  Recovery

  Ensure that you observe the restrictions listed in the Programming Guide.

EDC3403
  Overriding virtual function "&1" may not return "&2" because class "&3" has multiple base classes or a virtual base class.

  Contravariant virtual functions are supported only for classes with single inheritance and no virtual bases.

  Recovery

  Ensure the class has single inheritance and no virtual bases.

EDC3404
  Virtual function "&1" is not a valid virtual function override because "&3" is an inaccessible base class of "&2".

  The compiler must generate code to convert the actual return type into the type that the overridden function returns (so that calls to the original overridden function is supported). However, the target type is inaccessible to the overriding function.

  Recovery

  Make the base class accessible.

EDC3405
  "&1" is a member of &2 classes. To reference one of these members, "&3" must be qualified.

  The class member specified is defined in more than one class nested within the base class and cannot be referenced from the base class if it is not qualified. This message is generated by the /Wund option.

  Recovery

  Use the scope operator ( :colon. :colon.) to qualify the name.

EDC3406
  "&1" is a member of "&2".

  This message will be invoked with /Wund option when UNQUALIFIED_MEMBER message (about unqualified members) is generated. This message tells you about the member data and the class it belongs to.

EDC3407
  "&1" is not the name of a function.

  A function name is required in this context. The specified name has been declared but it is not the name of a function.

  Recovery

  Ensure the name is the correctly-spelled name of a function.

EDC3408
  The value given for the "#pragma priority" is in range reserved for the system.

  #pragma priority values less than -2147482624 are reserved for system purposes.

  Recovery

  Change the #pragma priority value so that it is greater than -2147482624.

EDC3409
  Priority values in successive "#pragma priority" statements must increase.

  The current priority cannot be higher than the priority specified in the previous #pragma priority statement. As the priority value increases with each #pragma priority directive, the priority level decreases.

  Recovery

  Ensure priority values increase with each #pragma priority statements.

EDC3410
  Initialization or termination done before first "#pragma priority" statement.

  Static objects should not be initialized or terminated before the first #pragma priority directive before the first #pragma priority.

  Recovery

  Ensure initialization or termination follows the first "#pragma priority" statement.

EDC3411
  "&1" is not a valid ILE pointer type.

  The pointer type named in the directive is not one of the ILE pointer type.

  Recovery

  Change to a correctly-spelled ILE pointer type.

EDC3412
  "&1" has not been declared before the pragma pointer directive.

  The first parameter of the #pragma pointer directive must be defined as a typedef of a pointer to void before it can be named in the #pragma pointer directive.

  Recovery

  Declare the typedef before the pragma pointer directive.

EDC3413
  "&1" is not a typedef name.

  The identifier named as the first parameter of the directive is not a typedef.

  Recovery

  Change the identifier to a correctly-spelled typedef name.

EDC3414
  "&1" is not a void pointer.

  The typedef name must be a typedef of void pointer.

  Recovery

  Change the name to a typedef of void pointer.

EDC3415
  "&1" has been used in a declaration, the pragma is ignored.

  The typedef name has been used in a declaration before the pragma pointer directive occurs.

  Recovery

  Move the declaration so that is appears before the pragma pointer directive.

EDC3416
  The option "enum" is not allowed in the middle of a declaration of an enum. This option is ignored.

  #pragma options with the option enum (#pragma options enum=) cannot be specified within an enumeration declaration.

  Recovery

  Remove the enum option from the declaration.

EDC3417
  Enum type "&1" cannot contain both negative and unsigned values.

  The enumerator type values should fit into an integer. Specifying both unsigned and negative values will exceed this limit.

  Recovery

  Remove the negative or unsigned values.

EDC3418
  A conflicting #pragma alloc_text or #pragma code_seg was previously supplied for function &1.

  A different code segment for the function has been previously specified in the #pragma alloc_text or #pragma code_seg directive.

  Recovery

  Change or remove the current code segment of the function in the #prgama alloc_text directive or remove the conflicting #pragma code_seg.

EDC3419
  Syntax error in directive - expected "&1" and found "&2".

  A syntax error was found during preprocessing. The message identifies what the compiler expected and what it actually found.

  Recovery

  Correct the syntax error.

EDC3420
  Ordinal value on #pragma import or export must be in range 0 to 65535.

  The ordinal value specified in a #pragma import or #pragma export directive must be a positive number within the range of short integer values.

  Recovery

  Change the ordinal value so that it is within the range.

EDC3421
  #pragma reg_killed_by may not be used with overloaded function name &1.

  (This is an undocumented second level message, do not publish it.) The overloaded functions cannot use #pragma reg_killed_by for a set of instructions specified for the function.

  Recovery

  Remove the #pragma reg_killed_by.

EDC3422
  Functions callable from 16-bit code may not have pass-by-value aggregate parameters.

  If the calling function has a 16-bit calling convention (_Far16 _Cdecl, _Far16, _Pascal, or _Far16 _Fastcall), the function being called should not have an aggregate parameter passed by value.

  Recovery

  Remove the by-value aggregate parameters.

EDC3423
  Functions callable from 16-bit code may not return an aggregate by value.

  If the calling function has a 16-bit calling convention (_Far16 _Cdecl, _Far16, _Pascal, or _Far16 _Fastcall), the function being called should not have an aggregate parameter passed by value.

  Recovery

  Remove the return of an aggregate by value.

EDC3424
  #pragma mc_func can only be used at file scope.

  (This is an undocumented second level message, do not publish it.) The instruction specified with the #pragma mc_func is outside the file scope.

  Recovery

  Move #pragma mc_func so that it is in file scope.

EDC3425
  Instruction sequence for #pragma mc_func contains the character "&1" that is not a hexadecimal digit.

  (This is an undocumented second level message, do not publish it.) An incorrect hexadecimal value has been specified with the "#pragma mc_func" directive.

  Recovery

  Ensure all characters in the instruction sequence for #pragma mc_func are hexadecimal digits.

EDC3426
  Instruction sequence for #pragma mc_func would result in an incomplete byte.

  (This is an undocumented second level message, do not publish it.) The instruction sequence specified for #pragma mc_func is not in pairs.

  Recovery

  Change the instruction sequence so that it would result in a complete byte.

EDC3427
  Cannot take the address of the machine-coded function "&1".

  Because the function is machine-coded, you cannot take its address.

  Recovery

  Remove the reference to that function.

EDC3428
  #pragma mc_func may not be used with overloaded function name &1.

  (This is an undocumented second level message, do not publish it.) pragma mc_func cannot specify a set of instructions for overloaded functions.

  Recovery

  Remove the #pragma mc_func.

EDC3429
  Incorrect #pragma ignored.

  The pragma is not supported by this compiler or the syntax of this pragma is invalid.

  Recovery

  Correct or remove the #pragma.

EDC3431
  Invalid pragma name "&1" ignored.

  The pragma specified is not valid. The compiler ignores it.

  Recovery

  Remove the invalid pragma name.

EDC3432
  Code pages "&1" and "%2" are incompatible.

  Characters in the ASCII code page &1 cannot be translated to characters in the EBCDIC code page &2. They are either incompatible code pages, or not supported.

  Recovery

  Change the code page specification.

EDC3433
  An initializer is not allowed for the nonvirtual function "&1".

  The declaration of a pure virtual function must include the keyword virtual.

  Recovery

  Remove the initializer.

EDC3434
  Function "&1" has not been declared before the pragma descriptor directive.

  A function must be declared before it appears in the pragma descriptor directive.

  Recovery

  Declare the function before the pragma descriptor directive.

EDC3436
  Operational descriptors for type "&1" are not supported.

  The compiler has detected an unknown type specified as the operational descriptor. SV :colon. &1 is a C++ type

EDC3437
  Function cannot have C++ or OS linkage.

  The pragma does not expect the function to have a C++ linkage or OS linkage.

  Recovery

  Remove the C++ or OS linkage on the function declaration.

EDC3438
  "void" expected, but found "&1"; operational descriptor for return type not currently supported.

  Compiler expected a void token but found something else instead.

  Recovery

  Ensure the correct token is found.

EDC3439
  More parameters specified than in the function prototype.

  The number of parameters found are more than were specified in the function prototype.

  Recovery

  Ensure the number of parameters is the same as in the function prototype.

EDC3441
  "&1" is not the name of a function.

  The name is not a function name or the name is mis-spelled.

  Recovery

  Change to the correctly-spelled name of a function.

EDC3442
  The "&1" variable has not been declared.

  The variable has not been declared before use.

  Recovery

  Declare the variable.

EDC3443
  Expected 0 but found invalid value.

  The compiler expected a zero value but found something else instead.

  Recovery

  Ensure 0 is found.

EDC3445
  Invalid pragma parameter .

  The parameter specified in the pragma is invalid or the pragma does not expect a parameter.

  Recovery

  Remove the pragma parameter.

EDC3446
  Invalid operational descriptor specifier &1.

  The operational descriptor specifier name is invalid or the name is mis-spelled.

  Recovery

  Remove the operational descriptor.

EDC3447
  "&1" is not the name of a valid object type.

  An invalid object type is found by the compiler.

  Recovery

  Change to a valid object type.

EDC3448
  class1 is not a valid constant expression.

  The compiler has detected that class1 is not a valid constant expression.

  Recovery

  Change or remove class1 to a constant expression.

EDC3449
  class2 is not a valid constant expression.

  The compiler has detected that class2 is not a valid constant expression.

  Recovery

  Change or remove class2 to a constant expression.

EDC3450
  Descriptor specifier "&1" invalid for type "&2".

  The specifier is not valid for this type.

  Recovery

  Ensure the operational descriptor specifier is valid.

EDC3452
  Invalid syntax for #pragma pack.

  The compiler has detected an invalid #pragma pack syntax.

  Recovery

  Correct the syntax.

EDC3453
  #pragma pack is not allowed after the definition of the class.

  Alignment of the class must be known prior to its definition.

  Recovery

  Move #pragma pack so that it is before the definition of the class.

EDC3454
  A class must have been declared before it is used in a #pragma pack.

  The specified alignment can only be applied to a class that has been declared.

  Recovery

  Declare the class before it is used in a #pragma pack.

EDC3455
  #pragma pack cannot be declared more than once for the same class

  There can only be one alignment specification per class.

  Recovery

  Remove or change one of the #pragma pack statements.

EDC3456
  Trying to reset an empty #pragma pack stack.

  Each #pragma pack value is placed on a stack. There is currently no #pragma pack value on the alignment stack.

  Recovery

  Remove #pragma pack() directive.

EDC3457
  Invalid #pragma pack alignment value.

  The alignment value specified with #pragma pack is not valid. Check the

  Recovery

  Remove the invalid value.

EDC3458
  Template class matches more than one #pragma pack.

  Only one alignment value specified by #pragma pack can be used when defining a template.

  Recovery

  Ensure the template class matches only one #pragma pack.

EDC3461
  "&1" is not a valid sub-option for "&2". Option is ignored.

  The command line contained an option with an invalid sub-option.

  Recovery

  Remove the sub-option.

EDC3470
  "&1" has extern "C++" linkage and can not be mapped to "&2".

  Only functions with extern "C" linkage can be mapped using #pragma map.

EDC3471
  The linkage specification "&1" is not valid.

  The linkage specified with #pragma linkage is not valid for this identifier.

  Recovery

  Remove the linkage specification.

EDC3472
  The identifier "&1" has not been declared yet, so cannot have a "&2" specified.

  Linkage, map or noinline can only apply to those identifiers which have been declared.

  Recovery

  Declare the identifier before linkage, mapping or noinline.

EDC3473
  Invalid syntax for pragma "&1". Expected "&2".

  The compiler encountered a pragma with an invalid syntax. The message identifies what the compiler expected and what it actually found.

  Recovery

  Correct the syntax.

EDC3474
  Argument to va_start must be a parameter name.

  va_start initializes the argument to point to the beginning of the list.

  Recovery

  Ensure the argument to va_start is a parameter name.

EDC3475
  A local variable or compiler temporary is being used to initialize reference member "&1".

  The local variable is only active until the end of the function, but it is being used to initialize a member reference variable.

  Recovery

  Ensure that no part of your program depends on the variable or temporary.

EDC3476
  Compilation aborted by user or by the operating system.

  Either you pressed Ctrl-C or the operating system killed the process. Possible cause :colon. swap space is exhausted

EDC3477
  The keyword _Packed must be used in a typedef.

  The _Packed type specifier can only be used in a typedef declaration.

  Recovery

  Use _Packed in a typedef declaration to declare the _Packed class type, then use the typedef name to declare the variable.

EDC3479
  The keyword _Packed must be associated with a class definition.

  The _Packed specifier is only valid on a typedef declaration with a class definition.

  Recovery

  Define the _Packed class type in the typedef declaration.

EDC3483
  "&1" must be declared to have non-C++ linkage in order to be fetchable.

  A fetchable function cannot have C++ linkage.

EDC3484
  Ellipsis parameters not supported for 16 bit callable functions.

  Variable length parameter lists cannot be used when calling between 16 and 32 bit functions. This is a permanent restriction.

EDC3489
  Definition of "&1" is only allowed at file scope.

  A template class is being defined in a scope other than file scope. Because all template class names have file scope this definition is not allowed.

  Recovery

  Move the template class definition to file scope.

EDC3490
  Class template "&1" cannot be used until its containing template has been instantiated.

  The class template referenced cannot be used until the template that contains it has been instantiated. template cannot be used.

  Recovery

  Declare the class template at file scope or instantiate the template that contains it.

EDC3491
  The data in precompiled header &1 does not have the correct format.

  The precompiled header file has been corrupted or is not actually a precompiled header file.

  Recovery

  Delete the corrupted header file or use the correct option to regenerate it.

EDC3492
  Unable to open precompiled header &1. The original header will be used.

  The specified error occurred when the compiler attempted to open the precompiled header file.

  Recovery

  Correct the condition that prevented the open.

EDC3493
  Precompiled header &1 was created by a later release of the compiler. The original header will be used.

  The precompiled header cannot be used because it was created by a later version of the compiler.

  Recovery

  Delete the header or use the -genpcomp option to regenerate it.

EDC3494
  Unable to write to precompiled header &1.

  The specified error occurred when the compiler attempted to write to the precompiled header file.

  Recovery

  Correct the condition which prevented the write operation.

EDC3495
  Invalid wchar_t value &1.

  A multibyte character or escape sequence in a literal has been converted to an invalid value for type wchar_t.

  Recovery

  Change the character or escape sequence.

EDC3496
  Macro &1 has been invoked with an empty argument for parameter &2.

  The argument corresponding to the specified parameter has no tokens.

  Recovery

  If necessary, specify an argument.

EDC3498
  Precompiled header &1 created.

  The precompiled header was successfully created.

EDC3499
  Cannot open precompiled header &1 for output.

  The specified error occurred when the compiler attempted to open the precompiled header file.

  Recovery

  Correct the condition which prevented the compiler from opening the file.

Summary of Compiler Error Messages