volatile data references, forcing them
to be in memory and loaded/stored at each reference.
-march=esa390 or later
is enabled.
__int8/__int16/__int32 and __int64
builtin types.
-fpack option to specify per-compilation structure member
alignment.
#include files from PDS members under OpenEdition.
-frsa=NNN to provide the user a mechanism
for defining the per-function register-save-area.
-fc370=z1r2i
(or later) is enabled.
"OS" and extern "PLI" linkages.
long double) data type.
-march=esa390 option; causes the compiler to use
halfword immediate instructions, use string instructions and to
assume 16 floating-pt registers. Enabled by default with
-flinux is specified.
__rent and __norent keywords
applied to data.
-march=zarch is specified, the compiler will predefine
the macro _LP64 to 1; otherwise, it defines the _ILP32 macro to 1.
-fc370 is not specified, the compiler recognizes
#pragma pack(pop) as a equivalent to #pragma pack(reset).
LNAMEADDR=
parameter was added to DCCPRLG which provides the label for
this string. This allows the string to be as long as necessary,
and contain any required bytes, and also be properly demangled
in the C++ case. With this change, the results of a call
to __traceback are much better.
-fc370=z1r2 option, to indicate compatibility with the
IBM V1R2 z/OS compiler.
-fptr_to_unsized_array_parm option, to allow for
compatibility with compilers that incorrectly allow
this in C++ source (e.g. SAS/C++ and Microsoft.)
This allows version 1.70 of Systems/C++ to provide much better management of automatic template instantiation; without the need for "side files", or bloated executables.
-finstrument_functions option. For Linux (-flinux), this
decorates function entry/exit points compatibly with the normal Linux
utilities. In Systems/C mode, this causes macros to be generated
a function entry/exit points.
-fstructmap/-fno_structmap option to enable/disable the
"structure map" portion of the listing.
-fasmcomm option in the C++ compiler, which describes
how the original C++ lines should appear in the generated
assembler output.
-fasmlnno option in the C++ compiler. This causes
the codegenerator to generate comments detailing the line number
in the generated assembler source.
-fflex, -fmin_lm_reg=X and -fmin_stm_reg=X options in the
C and C++ compiler. These control peepholing of consecutive
Load/STore instructions. On the FLEX/ES(tm) system, LM and STM
instructions can perform slower than the sequence of L/ST instructions.
-fopts[=macro] and -fendmacro[=text] option in the C++ compiler.
-fexportall option in C++ compiler (in IBM mode.)
-fdollar option in the C++ compiler - allows '$' in
identifiers.
#if 0 or 1
#pragma ident and #ident which
place text characters into the generated object.
-O option to engage optimizations.
As well as the new features of the C compiler , Systems/C++ V1.60 provides the following enhancements
-fquiet option, which suppresses the banner messages
-march=zarch option:
extern "align4" linkage for C++
-famode=any to support using Grande
instructions and 64-bit integers/pointers when the
execution AMODE may not
be 64-bits.
__ptr31/__ptr64 pointer type qualifiers,
for specifically declaring 32 (31) bit or 64 bit pointers,
no matter what type of code is being compiled.
-fc99 not enabled
-fc370 now supports the following IBM builtin functions:
alloca, tsched, cs,
cds. Thus, all of the documented IBM C builtin
functions are now supported.
export supported in IBM compatiblity mode
-flinux mode. C and C++ code compiled with
-flinux is now
directly debuggable by the Linux debugger gdb.
-fpic and -fPIC for Linux/390 and z/Linux.