Before you start your migration

Before you migrate programs or applications to z/OS® V2R2 XL C/C++ compiler, determine potential problems with your source code by reviewing the following checklist:

  1. Determine the group of compiler releases from which you are migrating:
    • An earlier z/OS C/C++ compiler
    • An OS/390® C/C++ compiler
    • A pre-OS/390 C/C++ compiler
  2. View the documentation updates and other post-release information provided by the ReadMe files at http://www.ibm.com/support/docview.wss?uid=swg27007531.
  3. Review the changes introduced in z/OS V2R2 XL C/C++ compiler. See New migration issues for z/OS V2R2 XL C/C++.
  4. Review the changes that have been implemented since the last C/C++ compiler that was used with the application:
  5. Review the types of source code changes that have been identified since the last C/C++ compiler that was used with the application:
    Note: If your application uses class libraries that have been modified or are no longer supported, the resulting migration issues are discussed as source code compatibility changes.
  6. Use the INFO compiler option to identify the following potential problems:
    • Functions not prototyped. See INFO compiler option.
      Notes:
      1. Function prototypes allow the compiler to check for mismatched parameters.
      2. Return parameters might be mis-matched, especially when the code expects a pointer. (For example, malloc and family)
    • Assignment of a long or a pointer to an integer, or assignment of an integer to a pointer. See Pointer incompatibilities.
      Note: This type of assignment could cause truncation. A reference to the pointer might be invalid. Even assignments with an explicit cast will be flagged. See CHECKOUT(CAST) compiler option.
  7. If your code must be compliant with a specific ISO C++ standard, see ISO Standard C++ compliance migration issues.
  8. If you are using the IBM object model for an XL C++ program or application that was last compiled or executed with the compat object model, see Alignment incompatibilities between object models.