### Compiler Error Messages EDC3500 - EDC3599

EDC3500
  Precompiled header &1 not used because the header file was modified.

  The precompiled header cannot be used because the header file that created it was modified after the precompiled header file was generated.

  Recovery

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

EDC3501
  Precompiled header &1 used.

  The compiler is using the precompiled header file indicated.

EDC3518
  The string must be terminated before the end of the line.

  The compiler detected a string that was not terminated before an end-of-line character was found.

  Recovery

  End the string or use "\" to continue the string on the next line. The "\" must be the last character on the line.

EDC3519
  A character constant must end before the end of the line.

  The compiler detected a character constant that was not terminated before an end-of-line character was found.

  Recovery

  End the character constant or use "\" to continue it on the next line. The "\" must be the last character on the line.

EDC3520
  A matching &1 function named "&2" could not be found.

  The call may have failed because no member function exists that accepts the 'const/volatile' qualifications of the object.

  Recovery

  Ensure the type qualifier is correct and that the function name is spelled correctly.

EDC3522
  The macro "&1" has been redefined.

  An active definition already exists for the macro name being defined. The second definition will be used.

  Recovery

  Remove or rename one of the macro definitions if necessary.

EDC3523
  "&1" is a type name being used where a variable name is expected.

  The identifier must be a variable name not a type name.

  Recovery

  Check that the identifier is a variable name and ensure the variable is not hidden by a type name.

EDC3524
  Template "&1" has a missing or incorrect template argument list.

  A template name was found where a variable name was expected.

  Recovery

  Complete the template argument list or change the identifier to a variable name.

EDC3525
  Option -qstrict only valid when -qoptimize=3 specified.

  Option -qstrict is only meaningful is -qoptimize=3 is specified.

  Recovery

  Remove the -qstrict option or ignore the warning.

EDC3526
  Template friend declaration does not declare a class or a function.

  A template friend declaration must declare a class or a function following the template arguments.

  Recovery

  Change the template declaration to declare a class or a function.

EDC3528
  The 'const' object has been cast to a non-'const' object.

  A cast has been used to possibly modify a 'const' object. This may cause undefined behaviour at run-time.

  Recovery

  Remove the cast or make the object non-const.

EDC3529
  Atomic bit-field "&1" within the struct "&2" crosses the &3 boundary.

  Atomic bit-field cannot cross word boundary for SLIC and dword boundary for SLIC.

EDC3530
  Size of __atomic struct "&1" is invalid.

  Only size of 1, 2 or 4 is allowed for __atomic struct in the VLIC environment.

EDC3531
  #pragma HasHome must be specified for "&1" before #prama IsHome may be specified.

  You must specify #pragma HasHome for "&1" before you can specify #pragma IsHome for it.

  Recovery

  Specify the #pragma HasHome before the #pragma IsHome or remove the #pragma IsHome.

EDC3532
  &1 may only be used at file scope.

  The pragma is only valid at file scope.

  Recovery

  Move the pragma so that it is in file scope.

EDC3533
  Global friend functions may not be defined in a local class.

  A local class cannot have a friend function.

  Recovery

  Make the function a member function in the local class.

EDC3534
  No matching #pragma &1&2 for #pragma &1(pop)

  Either a #pragma &1&2 was not specified or a #pragma &1(pop) has already been encountered.

  Recovery

  Remove the pop or add on|off or iom|som|com|native|default to the pragma.

EDC3535
  Control action on #pragma exception_handler is not valid.

  The fifth parameter (the control action) of the #pragma exception_handler directive is optional, but if a message identifier list is given on the directive, you must specify a control action. See the <except.h> header file for the list of valid control actions that can be specified on a #pragma exception_handler directive. The only control actions that can be specified when the handler is a label are _HANDLE and _HANDLE_NO_MSG.

  Recovery

  Specify a valid control action on the #pragma exception_handler directive.

EDC3536
  Message identifier list on #pragma exception_handler is not valid.

  The message identifier list specified on a #pragma exception_handler directive must be a string literal consisting of seven-character message identifiers separated by white-space (spaces, tabs or a comma).

  Recovery

  Specify a valid message identifier list.

EDC3537
  Message identifier &1 on #pragma exception_handler is not valid.

  Each message identifier specified on a #pragma exception_handler directive must consist of seven characters. The last four characters of each identifier must consist only of the digits 0 through 9 and the letters and A through F. The last four characters of MCH messages can only be the digits 0 through 9.

  Recovery

  Change the message identifier that is not valid.

EDC3538
  Function &1 is not correctly prototyped on #pragma &2 directive.

  The handler parameter specifies a function which does not have a single parameter of type _INTRPT_Hndlr_Parm_T *. This type is defined in except.h.

  Recovery

  Correct the prototype and the function definition.

EDC3539
  Function &1 is overloaded and no prototypes have required parameters.

  The handler parameter specifies a function which does not have a single parameter of type _INTRPT_Hndlr_Parm_T *. This type is defined in except.h. The function name has been overloaded and no prototypes match this criteria.

  Recovery

  Include a correct prototype and function definition.

EDC3540
  The label &2 is not defined in function &1.

  The label is referenced but not defined in the function. The label definition (label followed by a colon and a section of code) must appear in the same function that references the label.

  Recovery

  Define the label in the function or remove the reference.

EDC3541
  The type of the handler &1 on the #pragma &2 directive is not valid.

  The handler named on the #pragma exception_handler or cancel_handler directive cannot have OS linkage or built-in linkage nor can it be a non-static member function, template function, or member of a template class. The handler named on a #pragma exception_hander directive must be a function or a label; the handler named on a #pragma cancel_handler can only be a function.

  Recovery

  Change the handler's type.

EDC3542
  Function &1 cannot be inlined and will be treated as static.

  The inliner is not able to inline this function without changing the behavior of the program. An out-of-line copy of the function will be generated in each compilation unit in which it is used.

  Recovery

  Remove the inline specification from the declaration so that a single out-of-line copy is generated.

EDC3544
  #pragma argument directive has already been specified for function "&1". This #pragma will be ignored.

  #pragma argument for a function can only be defined once. Any subsequent specification will be ignored.

EDC3545
  Function "&1" specified within #pragma argument should not have any linkage type (except "C") associated with it.

  Function with linkage type such as "OS" or "built-in" are not allowed in the #pragma directive.

  Recovery

  Remove the linkage type or make it "C".

EDC3546
  Function specified in #pragma argument must be defined or declared before the directive.

  The function specified within the #pragma argument is either not defined or defined after the directive.

  Recovery

  Define the function before the #pragma argument directive.

EDC3547
  The member function "&1" cannot be used in #pragma weak.

  Do not use a member function in #pragma weak. Use only standard functions.

  Recovery

  Replace the member function in the #pragma weak with a standard function.

EDC3562
  Alignment is determined at the left brace of the definition.

  The alignment has been changed during a class definition.

  Recovery

  Remove the #pragma align or place it before the class definition.

EDC3574
  The host file name is specified incorrectly.

  The syntax of the AS/400 host file name specified in the #pragma mapinc directive is not correct. The #pragma mapinc directive is ignored.

  Recovery

  Specify a correct AS/400 host file name. The syntax for a valid host file name is library-name/file-name(format-name).

EDC3575
  An option is specified incorrectly.

  The syntax of the option specified in the #pragma mapinc directive is not correct. The #pragma mapinc directive is ignored.

  Recovery

  Specify a valid option. The possible options are :colon. input, output, both, key, indicators, lvlchk or nullflds.

EDC3576
  A data type is specified incorrectly.

  The syntax of the data type specified in the #pragma mapinc directive is not correct. The #pragma mapinc directive is ignored.

  Recovery

  Specify a valid data type for the #pragma mapinc directive. The data type can be d, p, z, _P, 1BYTE_CHAR, or "".

EDC3577
  A communication line is busy. The host is not accessed.

  The compiler could not access an externally described file because the host communication line was busy.

  Recovery

  Make sure that the host communication line is active. Compile again.

EDC3578
  The host connection is not set up.

  The compiler could not access an externally described file because the host connection is not set up.

  Recovery

  Specify the environment variable ICCASNAME when the host connection is set up. Ensure the communication line is active. Compile again.

EDC3579
  A communication error occurred with the host.

  A communication error occurred when the compiler called the host to retrieve an externally described file.

  Recovery

  Restart the host connection. Compile again.

EDC3580
  The host file &1 cannot be found.

  The compiler could not find the specified externally described file.

  Recovery

  Ensure the host file name exists. Ensure that the correct library is in the current library list if *LIBL is specified.

EDC3581
  The host file &1 cannot be accessed.

  The compiler could not access the specified externally described file. The authority level associated with the current job on the host is not sufficient for accessing the specified file.

  Recovery

  Obtain authority to the externally described file or specify a file to which you have authority. Compile again.

EDC3582
  The host file &1 cannot be accessed.

  The compiler could not access the specified externally described file. The file is locked by other users.

  Recovery

  Make sure that the specified file is not locked. Compile again.

EDC3583
  No fields exist for format &1, in file &2, in library &3.

  No fields declared or no fields exist for the specified format. The fields do not match the options specified in the corresponding #pragma mapinc directive.

  Recovery

  Ensure the fields in the externally described file match the options specified in the #pragma mapinc directive.

EDC3584
  A format specified does not exist in file &1 in library &2.

  At least one of the formats specified does not exist in the specified file. The formats in the file did not match the formats specified in the corresponding #pragma mapinc directive.

  Recovery

  Ensure the formats in the externally described file match the formats specified in the #pragma mapinc directive.

EDC3585
  The option specified is not allowed for file &1 in library &2.

  The option specified in the #pragma mapinc directive is output, or indicators, but the file selected is a physical or logical file. The #pragma mapinc directive is ignored.

  Recovery

  (1) Change the option to input, input key, both, both key or nullflds. (2) Specify a different file name in the #pragma mapinc directive.

EDC3586
  The option specified is not allowed for file &1 in library &2.

  The option specified in the #pragma mapinc directive is key, or nullflds but the file selected is a device file. The #pragma mapinc directive is ignored.

  Recovery

  (1) Change the option to input, input indicators, output, output indicators, both or both indicators. (2) Specify a different file name in the #pragma mapinc directive.

EDC3587
  The compiler encountered a disk error when extracting DDS information.

  The compiler encountered an error when creating a file for an externally described file.

  Recovery

  Ensure that the directory pointed to by the file name in the #pragma mapinc directive has sufficient storage. If using a LAN drive, ensure that the LAN is working properly and you have permission to write to the disk.

EDC3593
  Arguments to "OS by_value" linkage functions must be pointers.

  Only pointers to USER domain space should be passed as arguments to "OS by_value" linkage functions, otherwise the call will fail. Typically this form of linkage is used to allow SYSTEM state programs to call USER state programs.

  Recovery

  Verify all arguments are pointers to USER domain.

EDC3594
  Disable handler has no matching cancel/exception handler or cancel/exception handlers are out of scope.

  The compiler has detected an attempt to disable a non existent exception handler.

  Recovery

  Verify the placement of the #pragma exception_handler, #pragma cancel_handler and #pragma disable_handler statements.

EDC3596
  "&1" does not have external linkage. Pragma export ignored.

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

  Recovery

  Give the identifier external linkage.

EDC3597
  "&1" is already exported. Duplicate directive ignored.

  A function may be imported or exported at most once.

  Recovery

  Remove one of the directives.

EDC3598
  The compiler could not open the output file "&1".

  The open command failed for file "&1".

  Recovery

  Ensure the output file name is correct. Also, ensure that the location of the output file has sufficient storage available. If using a LAN drive, ensure that the LAN is working properly and you have permission to write to the disk.

EDC3599
  "&1" cannot be exported. Directive ignored.

  The function main cannot be exported.

  Recovery

  Remove the directive.

Summary of Compiler Error Messages