New migration issues for z/OS V2R2 XL C/C++

IBM® z/OS® V2R2 XL C/C++ compiler has made performance and usability enhancements for the IBM z/OS operating platform V2R2 release ("z/OS V2R2" hereafter). For detailed information about these changes, see z/OS XL C/C++ User's Guide.

For information about the changes that the IBM Language Environment® element has made for z/OS V2R2, see "What's New in Language Environment for z/OS" in z/OS V2R1.0 Language Environment Concepts Guide.

This document alerts you to the migration issues that result from the following enhancements:
New compiler options
z/OS V2R2 XL C/C++ compiler introduces support for the following new compiler options:
  • CHECKNEW - Specify this option to control whether a null pointer check is performed on the pointer that is returned by an invocation of the throwing versions of operator new and operator new[].
For detailed information about these new compiler options, see z/OS XL C/C++ User's Guide.
New compiler suboptions
z/OS V2R2 XL C/C++ compiler introduces support for the following new compiler suboptions:
  • DSAUSER(value) - Specify value to allocate a user field with the size of value 32-bit words.
  • LANGLVL(NULLPTR) - Specify this suboption to enable the nullptr feature.
  • TARGET(zOSV2R2) - Specify this suboption to instruct the compiler to generate object code to run under z/OS Version 2 Release 2 and subsequent releases.
  • VECTOR(TYPE | AUTOSIMD) - Specify the TYPE suboption to support the vector data types and specify the AUTOSIMD suboption to generate code, when possible, using the SIMD instructions enabled under the Vector facility for z/Architecture®.
For detailed information about these suboptions, see z/OS XL C/C++ User's Guide.
Changes to default ARCH and TUNE level
Starting with z/OS V2R2, the default ARCH level is changed from ARCH(7) to ARCH(8), and the default TUNE level is changed from TUNE(7) to TUNE(8). For detailed information, see ARCHITECTURE and TUNE in z/OS XL C/C++ User's Guide.
Canges to fprintf and fscanf strings due to new specifiers for vector types
As of z/OS V2R1 (with APAR PI20843), XL C/C++ runtime supports new specifiers for the fprintf and fscanf families of functions for vector data types. For detailed information, see Required changes to fprintf and fscanf strings due to new specifiers for vector types.
Migration tools
You can use migration tools to facilitate migration activities. For detailed information, see Tools that facilitate your migration.