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:
- 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
- View the documentation updates and other post-release information provided by the ReadMe files at http://www.ibm.com/support/docview.wss?uid=swg27007531.
- Review the changes introduced in z/OS V2R2 XL C/C++ compiler. See New migration issues for z/OS V2R2 XL C/C++.
- Review the changes that have been implemented since the last C/C++
compiler that was used with the application:
- If you are migrating from an earlier z/OS C/C++ application, see Migration of earlier z/OS C/C++ applications to z/OS V2R2 XL C/C++.
- If you are migrating from an OS/390 C/C++ application, see Migration of OS/390 C/C++ applications to z/OS V2R2 XL C/C++.
- If you are migrating from a pre-OS/390 C/C++ compiler, see Migration of pre-OS/390 C/C++ applications to z/OS V2R2 XL C/C++.
- Review the types of source code changes that have been identified
since the last C/C++ compiler that was used with the application:
- If you are migrating from an earlier z/OS C/C++ application, see Source code compatibility issues with earlier z/OS C/C++ programs.
- If you are migrating from an OS/390 C/C++ application, see Source code compatibility issues with OS/390 programs.
- If you are migrating from a pre-OS/390 C/C++ application, see Source code compatibility issues with pre-OS/390 C/C++ programs.
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. - Use the INFO compiler option to identify the following potential
problems:
- Functions not prototyped. See INFO compiler option. Notes:
- Function prototypes allow the compiler to check for mismatched parameters.
- 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.
- Functions not prototyped. See INFO compiler option.
- If your code must be compliant with a specific ISO C++ standard, see ISO Standard C++ compliance migration issues.
- 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.