### Compiler Error Messages EDC3300 - EDC3399

EDC3300
  The declaration of "&1" must initialize the const member "&2".

  Recovery

  Initialize the member in the declaration.

EDC3301
  The declaration of "&1" must initialize the reference member "&2".

  Recovery

  Initialize the member in the declaration.

EDC3302
  "&1" is not allowed as a function return type. There may be a ";" missing after a "}".

  A class or enum definition must not be specified as a function return type. A semicolon may be missing after the definition.

  Recovery

  Ensure that a semicolon is not missing after the definition or change the return type.

EDC3303
  "&1" cannot be a base of "&2" because "&3" contains a member function called "&2".

  A class cannot inherit a function that has the same as the class.

  Recovery

  Change the name of either the base class or the inherited function.

EDC3304
  Forward declaration of the enumeration "&1" is not allowed.

  The declaration of an enumeration must contain its member list.

  Recovery

  Fully declare the enumeration.

EDC3305
  Unrecognized value "&1" specified with option "&2".

  Recovery

  Remove the unrecognized value.

EDC3306
  The previous message applies to argument &1 of function "&2".

  The previous message applies to the specified argument number. This message does not indicate another error or warning, it indicates which argument of the function call is the subject of the previous message.

EDC3307
  Unrecognized pragma "&1".

  The pragma is not supported by this compiler.

  Recovery

  Change or remove the #pragma directive.

EDC3308
  The nested class object "&1" needs a constructor so that its &2 members can be initialized.

  Recovery

  Create a constructor for the nested class object.

EDC3309
  The integer constant is out of range.

  You have provided an integer constant that is out of range. For the range of integer constants check limits.h.

  Recovery

  Ensure the integer constant is in range.

EDC3310
  The floating point constant is out of range.

  You have provided a floating point constant that is out of range. For the range of floating point constants check float.h.

  Recovery

  Ensure the floating point constant is in range.

EDC3311
  The &1 member "&2" must be initialized in the constructor's initializer list.

  Using the constructor's member initializer list is the only way to initialize nonstatic const and reference members.

  Recovery

  Initialize the member in the constructor's initializer list.

EDC3312
  Unexpected end of file :colon. newline expected.

  The file did not end with a new-line character.

  Recovery

  Ensure the file ends with a new-line character.

EDC3313
  Constructors and conversion functions are not considered when resolving an explicit cast to a reference type.

  You cannot resolve an explicit cast to a reference type using constructors or conversion functions.

  Recovery

  Cast the type to a temporary type and then take the reference to it.

EDC3314
  A character string literal cannot be concatenated with a wide string literal.

  A string that has a prefix L cannot be concatenated with a string that is not prefixed.

  Recovery

  Ensure both strings have the same prefix, or no prefix at all.

EDC3315
  All members of type "&1" must be explicitly initialized with all default arguments specified.

  Default arguments for member functions are not checked until the end of the class definition. Default arguments for member functions of nested classes are not semantically checked until the containing class is defined. A call to a member function must specify all of the arguments before the default arguments have been checked.

  Recovery

  Specify all default arguments with all members of the type.

EDC3316
  The nested class "&1" is undefined and cannot be defined later.

  A class must be defined in the scope that it was introduced.

  Recovery

  Define the class in the scope in which it was introduced.

EDC3317
  The address of an overloaded function can be taken only in an initialization or an assignment.

  Recovery

  Ensure the address of an overloaded function is used on an initialization or an assignment, or remove the expression.

EDC3319
  The mangled name for "&1" contains a compiler-generated name. It will not be visible from other compilation units.

  One of the arguments to the function was given a compiler-generated name. This name could be different in offer compilation units.

  Recovery

  Provide a type name for the argument that the compiler generated a name for.

EDC3320
  Syntax error - found "&1 &2" :colon. "&1" is not a type name.

  The compiler detected a non-type symbol where a type is required. A type must be used to declare an object.

  Recovery

  Change to a type name or remove the expression.

EDC3321
  A temporary of type "&1" is needed :colon. "&2" is an abstract class.

  The compiler has determined that it must use a temporary to store the result of the expression, but the result is an abstract base type. An abstract base type cannot be used to create an object.

  Recovery

  Change the type of the result.

EDC3322
  Nesting level of template class definitions may cause the compiler to fail.

  Template class definitions are nested in such a way that the compiler may not be able to continue.

  Recovery

  Reduce the number of nesting levels of template class definitions.

EDC3323
  "&1" hides pure virtual function "&2" in the nonvirtual base "&3".

  The pure virtual function in a nonvirtual base cannot be overridden once it has been hidden.

  Recovery

  Make the pure virtual function visible, or make the base it is derived from virtual.

EDC3324
  The class qualifier "&1" for "&2" must be a template class that uses the template arguments.

  A non-class template can only declare a global function or a member of a template class. If it declares a member of a template class, the template class arguments must include at least one of the non-class template arguments.

  Recovery

  Change the template declaration so that it either declares a global function or a member of a template class that uses the non-class template arguments.

EDC3325
  The class "&1" cannot be passed by value because it does not have a copy constructor.

  The compiler needs to generate a temporary to hold the return value of the function. To generate the temporary object, a copy constructor is needed to copy the contents of the object being returned into the temporary object.

  Recovery

  Create a copy constructor for the class or change the argument to pass by value.

EDC3326
  The previous &1 messages show situations that could arise if the corresponding template definitions were instantiated.

  During the processing of a class template, possible errors were found in the class declaration. These errors may occur when the template is instantiated.

  Recovery

  Ensure that the errors will not occur when the template is instantiated.

EDC3327
  The previous message shows a situation that could arise if the corresponding template definition was instantiated.

  During the processing of a class template, a possible error was found in the class declaration. This error may occur when the template is instantiated.

  Recovery

  Ensure that the error will not occur when the template is instantiated.

EDC3328
  The output file name "&1" cannot be the same as the input file name.

  The compiler detected a condition where the name of the input source file is the same as an output file being generated by the compiler.

  Recovery

  Change either the input file name or the output file name.

EDC3329
  The external variable "&1" cannot be defined at block scope.

  The compiler has detected the declaration of an automatic variable that was previously defined as having external linkage.

  Recovery

  Move, remove, or change the external variable definition.

EDC3330
  "&1" cannot have an initializer list.

  A member function that is not a constructor is defined with an initializer list.

  Recovery

  Remove the initializer list.

EDC3331
  Return value of type "&1" is expected.

  No return value is returned from the current function but the function is expecting a non-void return value.

  Recovery

  Ensure a value is returned, or change the return type of the function to void.

EDC3332
  "&1" bypasses initialization of "&2".

  It is invalid to jump past a declaration with an explicit or implicit initializer unless the declaration is in an inner block that is also jumped past.

  Recovery

  Enclose the initialization in a block statement.

EDC3333
  "&1" is being redeclared as a member function. It was originally declared as a data member.

  The template redeclares a data member of a class template as a member function.

  Recovery

  Change the original declaration of the variable to a member function, or change the redeclaration of the variable to a data member.

EDC3334
  "&1" is being redeclared as a non-function member or has syntax errors in its argument list.

  The template redeclares a member function of a class template as a data member. There may be syntax errors in the declaration.

  Recovery

  Change one of the declarations if necessary.

EDC3335
  A string literal cannot be longer than &1 characters.

  The compiler limit for the length of a string literal has been exceeded. The string literal is too long for the compiler to handle.

  Recovery

  Specify a shorter string literal.

EDC3336
  A wide string literal cannot be longer than &1 characters.

  The compiler limit for the length of a wide string literal has been exceeded. The wide string literal is too long for the compiler to handle.

  Recovery

  Specify a shorter string literal.

EDC3337
  The definition of "&1" is not contained in an include file. It may be needed for automatic generation of template functions.

  The definition of the class can only be used during automatic generation of template functions if it is contained in an include file.

  Recovery

  Add the definition to an include file.

EDC3338
  Invalid "multibyte character sequence character" (MBCS) character.

  The compiler has detected a multibyte character sequence that it does not recognize.

  Recovery

  Replace the "multibyte character sequence character" (MBCS) character.

EDC3339
  "&1" is an undefined pure virtual function.

  The user tried to call a member function that was declared to be a pure virtual function.

  Recovery

  Remove or define the function as pure virtual.

EDC3340
  The presence of the "#line" directive in source files compiled with "-a" or "-ae" may result in the "tcov" program behaving unpredictably.

  Recovery

  Remove the "#line" directive or recompile without the "-a" or "-ae" option.

EDC3341
  Missing value for option "&1".

  The option was messing a required parameter. See the "Users Guide" for details on the option.

  Recovery

  Add a value for the option.

EDC3342
  Template "&1" cannot be instantiated because the actual argument for formal argument "&2" has more than one variant.

  The argument is a function template or an overloaded function with two or more variants. The compiler cannot decide which variant to choose to bind to the argument type.

  Recovery

  Change the formal template argument or remove the extra variants.

EDC3343
  More than 32760 files in a compilation unit.

  The compiler limit has been exceeded for the number of include files allowed in a compilation unit.

  Recovery

  Reduce the number of files.

EDC3344
  -qflttrap=enable specified, but no floating point traps are being detected.

  Recovery

  Remove -qflttrap=enable option.

EDC3345
  Pointer to a built-in function not allowed.

  Because you cannot take the address of a built-in function, you cannot declare a pointer to a built-in function.

  Recovery

  Remove the pointer.

EDC3346
  Built-in function "&1" not recognized.

  The function declared as a built-in is not recognized by the compiler as being a built-in function.

  Recovery

  Ensure the function is a built-in function or remove the built-in keyword from the declaration.

EDC3347
  "&1" is not supported.

  Recovery

  Remove the operator from the expression.

EDC3348
  Function calls are not supported.

  You can only generate this message in the debugger, when you use an expression that includes a function call.

  Recovery

  Remove function calls from the expression.

EDC3349
  The expression is too complicated.

  Recovery

  Simplify the expression.

EDC3350
  Evaluation of the expression requires a temporary.

  Recovery

  Change the expression so that a temporary object is not required.

EDC3351
  "&1" is an overloaded function.

  The identifier refers to an overloaded function with two or more variants. The compiler requires a prototype argument list to decide which variant to process.

  Recovery

  Specify a prototype argument list or remove variants of the overloaded function.

EDC3352
  Identifier or function prototype expected.

  The symbol must be the name of a data object, the name of a function with no variants, or a function or operator name followed by a parenthesized argument list.

  Recovery

  Ensure the symbol is either the name of a data object, the name of a function with no variants, or a function or operator name followed by a parenthesized argument list.

EDC3353
  "&1" does not have external linkage.

  The pragma directives #map, #import, and #export can only be applied to objects or functions that are external.

  Recovery

  Add or remove the #pragma directive.

EDC3354
  "&1" has already been mapped.

  Only one map name may be given to any object or function.

  Recovery

  Change one of the map names.

EDC3356
  Invalid option with #pragma.

  The option specified for the #pragma directive is not valid.

  Recovery

  Remove or change the option.

EDC3358
  The "&1" option is not allowed with the "&2" option.

  The specified options cannot be used together. The first option specified in the message is ignored.

  Recovery

  Remove one of the options.

EDC3359
  The result of string concatenation is a non-Pascal string.

  A Pascal string was concatenated to a non-Pascal string. The result of the concatenation is a non-Pascal string.

  Recovery

  Ensure both strings are either Pascal or non-Pascal.

EDC3360
  The result of string concatenation is a Pascal string.

  A non-Pascal string was concatenated to a Pascal string. The result of the concatenation is a Pascal string.

  Recovery

  Ensure both strings are either Pascal or non-Pascal.

EDC3361
  A Pascal string is too long; the length has been set to 255.

  A Pascal string is longer than 255 bytes. The length byte has been set to 255, but the rest of the string is left intact.

  Recovery

  Shorten the Pascal string.

EDC3362
  Compiler-generated name "&1" overridden, may cause link problems.

  The specified object has a special compiler-generated external name, but appears in a #pragma map directive that would override that name. Using #pragma map to replace the name may cause link errors or prevent argument type checking across compilation units.

  Recovery

  Remove the #pragma map directive that overrides the compiler-generated external name.

EDC3363
  The bit-field length must not be negative.

  The bit-field length must be a non-negative integer value.

  Recovery

  Change the bit-field length to a non-negative integer value.

EDC3364
  A zero-length bit-field must not have a name.

  A named bit-field must have a positive length; a zero-length bit-field is used for alignment only, and must not be named.

  Recovery

  Remove the name from the zero-length bit-field.

EDC3365
  The bit-field is too small; &1 bits are needed for "&2".

  The bit-field length is smaller than the number of bits needed to hold all values of the enum.

  Recovery

  Increase the bit-field length.

EDC3366
  The bit-field is larger than necessary; only &1 bits are needed for "&2".

  The bit-field length is larger than the number of bits needed to hold all values of the enum.

  Recovery

  Decrease the bit-field length.

EDC3367
  An object declared as compatible with 16-bit applications is larger than 64K.

  The name of the object, or a typedef name used to declare it, appeared in a #pragma seg16 directive, indicating it can be used in 16-bit code and will not cross 64K boundaries. However, because the object is larger than 64K, it will cross the 64K boundary.

  Recovery

  Remove the name of an object in the #pragma seg16 directive.

EDC3370
  A template friend declaration may only declare, not define, a class or function.

  The class or function declared in the template friend declaration must be defined at file scope.

  Recovery

  Remove the definition from the template friend declaration.

EDC3371
  The function "&1" must not be declared "&2" at block scope.

  There can be no static or inline function declarations at block scope.

  Recovery

  Move the function so that it is not defined at block scope.

EDC3372
  The previous &1 messages apply to function argument &2.

  The previous message applies to the specified argument number. This message does not indicate another error or warning, it indicates which argument of the function call is the subject of the previous message.

EDC3373
  The previous &1 messages apply to argument &2 of function "&3".

  The previous message applies to the specified argument number. This message does not indicate another error or warning, it indicates which argument of the function call is the subject of the previous message.

EDC3374
  "&1" is not a static member of "&2".

  Non-static data members cannot be defined outside the class definition.

  Recovery

  Make the member a static member or move it into the class definition.

EDC3375
  The initializer must be enclosed in braces.

  Array element initializers must be enclosed in braces.

  Recovery

  Put braces around the initializer.

EDC3376
  union "&1" has multiple initializers associated with its constructor "&2".

  A union can only contain one member object at any time, and therefore can be initialized to only one value.

  Recovery

  Remove all but one of the initializers.

EDC3377
  "&1" is declared on line &2 of "&3".

  This is an informational message; no response is necessary.

EDC3378
  "&1" is defined on line &2 of "&3".

  This is an informational message; no response is necessary.

EDC3379
  Maximum number of error messages exceeded.

  Recovery

  Correct the error and recompile.

EDC3380
  You cannot override virtual function "&1" because "&3" is an ambiguous 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 conversion is ambiguous.

  Recovery

  Clarify the base class.

EDC3381
  The operands have type "&1" and "&2".

  This message provides more information when the array operator was used with invalid types. The message tells the user what the types were used with the array operator.

EDC3382
  "&1" is defined in this compilation and cannot be imported.

  Only externally-defined functions can be imported.

  Recovery

  Remove the directive that imports the function or define the function externally.

EDC3383
  "&1" is not defined in this compilation and cannot be exported.

  Only functions defined in this compilation can be exported.

  Recovery

  Remove the directive that exports the function or define the function in this compilation unit.

EDC3384
  "&1" is already imported or exported. Duplicate directive ignored.

  You can only import or export a function once.

  Recovery

  Remove one of the directives.

EDC3385
  Macro "&1" has been invoked with an incomplete argument for parameter "&2".

  The terminating "," or ")" for the argument was not found.

  Recovery

  Ensure the terminating "," or ")" is in the argument.

EDC3386
  The enum cannot be packed to the requested size of &1.

  The enum type is too large to fit in the storage requested with the /Su option.

  Recovery

  Redefine the storage to a larger size by specifying a larger number for /Su option.

EDC3387
  "&1" is not initialized until after the base class is initialized.

  First, the base classes are initialized in declaration order, then the members are initialized in declaration order, then the body of the constructor is executed.

  Recovery

  Do not reference the class member in the base class initializer.

EDC3388
  The expression to the left of the "&1" operator is a relational expression ("&2"). The "&3" operator may have been intended.

  The compiler has detected the mixing of relational and bitwise operators in what was determined to be a conditional expression.

  Recovery

  Ensure the correct operator is being used.

EDC3389
  The expression to the left of the "&1" operator is a logical expression ("&2"). The "&3" operator may have been intended.

  The compiler has detected the mixing of relational and bitwise operators in what was determined to be a conditional expression.

  Recovery

  Ensure the correct operator is being used.

EDC3390
  The expression to the left of the "&1" operator is an equality expression ("&2"). The "&3" operator may have been intended.

  The compiler has detected the mixing of relational and bitwise operators in what was determined to be a conditional expression.

  Recovery

  Ensure the correct operator is being used.

EDC3391
  The expression to the right of the "&1" operator is a relational expression ("&2"). The "&3" operator may have been intended.

  This message is generated by the /Wcnd option. This option warns of possible redundancies or problems in conditional expressions involving relational expressions and bitwise operators.

  Recovery

  Ensure the correct operator is being used.

EDC3392
  The expression to the right of the "&1" operator is a logical expression ("&2"). The "&3" operator may have been intended.

  This message will be generated when /Wcnd option is specified, in order to warn possible redundancies or problems in conditional expressions involving logical expressions and bitwise operators.

  Recovery

  Ensure the correct operator is being used.

EDC3393
  The expression to the right of the "&1" operator is an equality expression ("&2"). The "&3" operator may have been intended.

  This message will be generated when /Wcnd option is specified, in order to warn possible redundancies or problems in conditional expressions involving equality expressions and bitwise operators.

  Recovery

  Ensure the correct operator is being used.

EDC3394
  Assignment to the "this" pointer is not allowed.

  The "this" pointer is a const pointer and cannot be modified.

  Recovery

  Remove the assignment to the "this" pointer.

EDC3395
  "&1" must not have any arguments.

  Recovery

  Remove all arguments from the special member function.

EDC3396
  The second operand to the "offsetof" operator is not valid.

  The second operand to the "offsetof" operator must consist only of "." operators and "[]" operators with constant bounds.

  Recovery

  Remove or change the second operand.

EDC3397
  "&1" is a member of "&2" and cannot be used without qualification.

  The specified name is a class member, but no class qualification has been used to reference it.

  Recovery

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

EDC3398
  "&1" is undefined. Every variable of type "&2" will assume "&1" has no virtual bases and no multiple inheritance.

  The definition of the class is not given but the compiler must implement the pointer to member. It will do so by assuming the class has at most one nonvirtual base class.

  Recovery

  If this assumption is incorrect, define the class before declaring the member pointer.

EDC3399
  "&1" is undefined. The delete operator will not call a destructor.

  The definition of the class is not given so the compiler does not know whether the class has a destructor. No destructors will be called.

  Recovery

  Define the class.

Summary of Compiler Error Messages