### Changes for Version 3.6.4 (AIX Only)

IBM C and C++ Compilers now supports 64-bit application development for C++ and C applications.

The following new compiler options are now supported:

- -qignprag to detect aliasing pragma errors.
- -qstrict_induction to disable loop induction variable optimizations that have the potential to alter the semantics of your program.

### Changes from Releases Prior to Version 3.6

C Run Time Library Enhancements

- Unlimited registration of exit handlers
- XPG4 gencat, printf, scanf support
- ISO/MSE amendment 1 compliance
- Time functions support years beyond 2038
- Long long library support (new to OS/2)
- Unicode-based code conversion function utilities -- ICONV support using Unicode (new to OS/2)
- Ccsidtocs() /cstoccsid() added

Heap Debug/Non-Debug Libraries

- Improved heap debug routines
- Quick relink to determine heap errors (OS/2, Windows)
- Heap validation for most strxxx/memxxx routines
- Stack trace information is displayed with heap errors
- Heap performance improvement for small-sized objects

C++ Run Time Library Enhancements

- Run Time Type Information (RTTI) is now supported.
- Support for defining operator new [ ]( ) and operator delete [ ]( ).

Cautions

- The new IBM C and C++ Compilers libraries will not work with the locales from VisualAge C++ for OS/2 Version 3.0, VisualAge for C++ for Windows Version 3.5, and C Set++ for AIX Version 3.1.4. However, the libraries from these releases will work with the new set of locales.
- Extended RTTI is no longer supported.

### Compiler

No Longer Supported

- Direct to SOM code generation is not supported.
- Building SOM or OpenDoc applications is not supported.
- Compiler Options
  - /Fb (browser)
  - /Fw (creates code for intermediate code linking
  - /Gh (generates Performance Analyzer code)
  - /Gu (used for intermediate code linker)
  - /Gw (generates fwait instruction after each floating point load)
  - /Ol (intermediate code linker)
  - /qcheck (replaced with /w)
  - /qwin32s
  - /qautothread
- Compiler Options
  - -qbrowse
  - -a
  - -ae
  - -qhd

Changes from Previous Releases

- The defaults for /Gf and /Gi have changed to /Gf+ and /Gi+
- The default for /Gi has changed to /Gi+

### Linker

In VisualAge 3.5, an .exp file was required as a command line input if you invoked ilink.exe to create a .dll file. In version 3.6, if an .exp file is not provided on the command line, ilink.exe will call ilib.exe to create the .exp file and .lib files and continues the linking process. Therefore, you no longer have to provide the .exp file on the command line.

Changes to Linker Options

- /ALIGNMENT is now /ALIGNFILE (/A works for both)
- /C no longer works for /CODEVIEW; you must now type at least /CODEV

Options are no longer Supported

- /BROWSE|/NOBROWSE
- /OPTVFUNCTION
- The nofreeformat version of the ILINK command line has been removed

### IBM Library Manager

The library utility now allows options and input files to be specified in any order (free format). If you want to use build scripts or makefiles from previous releases, replace "ILib" with "ILib /NOFR". Note: /NOFR must be the first option specified in the command line.

The following options are not supported in IBM C and C++ Compilers:

- /convformat
- /listlevel

ILIB now accepts module definition file statements.

ILIB now provides the functionality of IMPLIB.

### Language Implementation

The following support has been added:

- pragma enum
- pragma leaves
- pragma reachable
- pragma stack_align
- long long support

### Open Class Library

- Compound Document Framework is no longer supported.
- Task library has been removed from the AIX version of USL class library.

IBM Open Class Library Changes
Pragmas and their platform and language restrictions
Reserved keywords