Chapter Contents

Previous

Next
Compiling C and C++ Programs

Option Summary

The cross-platform compiler options are summarized in Compiler Options. A more detailed description of each option is provided in the section Option Descriptions.

The option specifications are listed in the first column of the table. The second column indicates whether the option can be negated. An exclamation point (!) means that the option can be negated. A plus sign (+) means that the option cannot be negated. Only options that begin with -K can be negated. All other options cannot be negated. To negate a -K option, precede the option name with no . For example, to negate the -Kasciiout option, specify -Knoasciiout . The third column lists the default for each option that can be negated.

Compiler Options
Option Negation Default Description
-c +
Suppress prelinking.
-cf
+
For C compilations: Require function prototypes in scope.
-cxx
+
Specifies to sascc370 that .c files should be interpreted as C++ programs. The C++ library will be included in all linking.
-Dsym[=val]
+
Defines the symbol sym as having the value specified by value during the preprocessing phase.
-g
+
Generate debuggable code and produce a .dbg370 debugging information file. (See -Kdebug .)
-Gfn
+
Specify the maximum number of floating-point registers (n= 0 through 2).

Note:    -Gfn and -Kfreg are synonyms.  [cautionend]

-Gvn
+
Specify the maximum number of registers that the optimizer can assign to register variables (n= 0 through 6).

Note:    -Gvn and -Kgreg are synonyms.   [cautionend]

-Ipathname +
Append pathname to the list of directories searched for include files.
-Kalias
! -Knoalias
Specifies that the global optimizer should assume worst-case aliasing.

Note:    -Oa and -Kalias are synonyms.  [cautionend]

-Karmode
! -Knoarmode
Specifies that code that uses the ESA access registers may be generated.
-Kasciiout
! -Knoasciiout
Character string constants are output as ASCII values.
-Kat
! -Knoat
Allow the use of the call-by-reference operator @ .
-Kautoinst ! -Knoautoinst
Controls automatic implicit instantiation of template functions and static data members of template classes.
-Kbitfield=n +
For C compilations: allows for fields that are not int . Sets the allocation unit size for int to be n.



For C++ compilations: sets the allocation unit size for int to be n. C++ always allows non -int bitfields.
-Kbytealign
! -Knobytealign
Align all data on byte boundaries.
-Kcomnest
! -Knocomnest
For C compilations: Allow nested comments.
-Kcomplexity=n
+
Specify the maximum complexity that a function can have and remain eligible for default inlining.

Note:    -Oic and -Kcomplexity are synonyms.  [cautionend]

-Kdbgmacro
! -Knodbgmacro Specify that macro names should be saved in the debugger file.
-Kdbgobj ! -Knodbgobj
Causes the compiler to place the debugging information in the output object file.
-Kdbhook
! -Knodbhook
Generate debugger hooks.
-Kdebug
[=dbg370-filename]

! -Knodebug
Generate debuggable code and produce a .dbg370 debugging information file. Optionally, specify the name of the debugging information file.

Note:    -Kdebug and -g are similar. -Kdebug allows a filename argument.  [cautionend]

-Kdepth=n
+
Specify the maximum depth of functions to be inlined.

Note:    -Oid and -Kdepth are synonyms.  [cautionend]

-Kdigraph ! see description Enables the translation of the International Standard Organization (ISO) digraphs and/or the SAS/C digraph extension scd .
-Kdollars
! -Knodollars
Allow the use of the $ character in identifiers, except as the first character.
-Kexcept
! -Knoexcept
Enables exception handling for C++ code.
-Kexclude
! -Knoexclude
For C compilations: Omit listing lines that are excluded by preprocessor statements from the formatted source listing.
-Kfreg=n
+
Specify the maximum number of floating-point registers (n=0 through 2).

Note:    -Gfn and -Kfreg are synonyms.  [cautionend]

-Kgreg=n
+
Specify the maximum number of registers that the optimizer can assign to register variables (n=0 through 6).

Note:    -Gvn and -Kgreg are synonyms.  [cautionend]

-Khlist
! -Knohlist
For C compilations: Print standard header files in the formatted source listing.
-Kigline
! -Knoigline
Ignore #line statements in the input file.
-Kilist
! -Knoilist
For C compilations: Print the source referenced by the #include statement in the formatted source listing.
-Kindep
! -Knoindep
Generate code that can be called before the run-time library framework is initialized or code that can be used for interlanguage communication.
-Kjapan
! -Knojapan
Translates keywords and identifiers that are in uppercase to lowercase before they are processed by the compiler.
-Klisting
[=list-filename]
! -Knolisting
For C compilations: Generate a listing file and, optionally, specify the listing file name.
-Kloop
! -Knoloop
Specify that the global optimizer should perform loop optimizations. (See -Ol .)
-Kmaclist
! -Knomaclist
For C compilations: Print macro expansions in the formatted source listing.
-Knarrow
! -Knonarrow
For C compilations: Make the listing more narrow.
-Knodbgcmprs
! -Kdbgcmprs
Do not compress debugging information file.
-Knoextname
! -Kextname
Disable the use of extended names.
-Knohmulti
! -Khmulti
For C compilations: Specifies that system include files will only be included once.
-Knoimulti
! -Kimulti
For C compilations: Specifies that local include files will only be included once.
-Knoinline
! -Kinline
Disable all inlining during the optimization phase. (See Oin .)
-Knoinlocal
! -Kinlocal
Disable inlining of single-call, static functions during the optimization phase. (See -Oil .)
-Knolineno
! -Klineno
Disable identification of source lines in run-time messages emitted by the SAS/C Library.
-Knostringdup
! -Kstringdup
Create a single copy of identical string constants.
-Knousearch
! -Kusearch
Specify #include file search rules that are not typical of UNIX.
-Komd[=omd-filename]
! -Knoomd
Invoke the object module disassembler and, optionally, specify the .omd listing file name.

Note:    -Komd and -S are similar. -Komd allows a filename argument.  [cautionend]

-Koptimize
! -Knooptimize
Execute the global optimizer phase of the compiler.

Note:    -O and -Koptimize are synonyms.  [cautionend]

-Koverload
! -Knooverload
For C++ compilations: Turn on recognition of the overload C++ keyword.
-Kpagesize=nn
+
For C compilations: Specify the number of lines per page for source and cross-reference listings.
-Kpflocal ! -Knopflocal
Assume that all functions are _ _local unless _ _remote was explicitly specified in the declaration.
-Kposix
! -Knoposix
Create a POSIX-compliant program.
-Kppix
! -Knoppix
For C compilations: Allow nonstandard token-pasting.
-Krdepth=n
+
Specifies the maximum level of recursion to be inlined.

Note:    -Oir and -Krdepth are synonyms.  [cautionend]

-Kredef
! -Knoredef
Allow redefinition and stacking of #define names.
-Krefdef
! -Knorefdef
Force the use of the strict reference-definition model for external linkage of _ _rent identifiers.
-Krent
! -Knorent
Support reentrant modification of static and external data.
-Krentext
! -Knorentext
Support reentrant modification of external data.
-Krtti
! -Knortti
Enables the generation of information required for RTTI on class objects that have virtual functions.
-Ksingleret
! -Knosingleret
Forces the code generator to generate a single return sequence at the end of each function.
-Ksmpxivec
! -Knosmpxivec
Generate a CSECT with a unique name of the form sname@. in place of @EXTVEC# (for SMP support).
-Ksname=sname
+
Define sname as the SNAME for a compilation.
-Ksource
! -Knosource
For C compilations: Output a formatted source listing of the program to the listing file.
-Ksrcis=
source-filename

+
Override the name of the source file in the debugging information ( .dbg370 ) file.
-Kstrict
! -Knostrict
For C compilations: Enable an extra set of warning messages for questionable or nonportable code.
-Ktmplfunc
! -Ktmplfunc
Controls whether a nontemplate function declaration that has the same type as a template specialization refers to the template specialization. When -Knotmplfunc is specified, template specializations may also be referred to by nontemplate declarations. -Knotmplfunc provides compatibility with older code. -Ktmplfunc is the default for compatibility with the ISO C++ Standard.
-Ktrigraphs
! -Knotrigraphs
For C compilations: Enable translation of ANSI standard trigraphs.
-Kundef
! -Knoundef
Undefine predefined macros.

Note:    -U and -Kundef are synonyms.  [cautionend]

-Kuse_clink
! -Knouse_clink
Use the clink program instead of cool to prelink the object file.
-Kvstring
! -Knovstring
Generate character string literals with a 2-byte length prefix.
-Kxref
! -Knoxref
For C compilations: Produce a cross-reference listing.
-Kzapmin=n
+
Specify the minimum size of the patch area, in bytes.
-Kzapspace=n
+
Change the size, n, of the patch area generated by the compiler.
-mrc
+
Use mainframe return code values instead of UNIX-style values.
-O
+
Execute the global optimizer phase of the compiler.

Note:    -O and -Koptimize are synonyms.  [cautionend]

-Oa
+
Specifies that the global optimizer should assume worst-case aliasing.

Note:    -Oa and -Kalias are synonyms.  [cautionend]

-Oic=n
+
Specify the maximum complexity that a function can have and remain eligible for default inlining.

Note:    -Oic and -Kcomplexity are synonyms.  [cautionend]

-Oid=n
+
Specify the maximum depth of functions to be inlined.

Note:    -Oid and -Kdepth are synonyms.  [cautionend]

-Oil
+
Enables inlining of single-call, static functions during the optimization phase. Note: -Oil and -Kinlocal are synonyms.
-Oin
+
Enables inlining of small static and external functions during the optimization phase. (Functions defined with the _ _inline keyword are inlined by default.)

Note:    -Oin and -Kinline are synonyms.  [cautionend]

-Oir=n
+
Specifies the maximum level of recursion to be inlined.

Note:    -Oir and -Krdepth are synonyms.  [cautionend]

-Ol
+
Specify that the global optimizer should perform loop optimizations.

Note:    -Ol and -Kloop are synonyms.  [cautionend]

-o filename
+
Specifies the output filename.
-P
+
Only run the preprocessor on any .c files, generating .i files .
-Q pathname
+
Specify an alternative pathname to be searched for the cross-platform compiler executable file
-S
+
Invoke the object module disassembler after a successful compilation. (See -Komd .)
-Tallres
+
Specify that all-resident library routines should be used to build an all-resident program.

Note:    The -Tspe option is not allowed in combination with the -Tallres option.  [cautionend]

-Tcics370
+
Specify that CICS is the target.
-Tcicsvse
+
Specify that CICS running under the VSE operating system is the target.

Note:    The -Tspe option is not allowed in combination with the -Tcicsvse option.  [cautionend]

-Tcms370
+
Specify CMS running under VM/ESA or VM/XA as the target host operating system.
-Tpcms370
+
Specify CMS running in System/370 mode (pre-bimodal) as the target host operating system.
-Tspe
+
Specify that the SAS/C SPE library routines should be used to build an SPE program.

Note:    The -Tallres and -Tcicsvse options are not allowed in combination with the -Tspe option.  [cautionend]


-temp=directory
+
Specify a different temporary directory for the compiler to use.
-U
+
Undefine predefined macros.

Note:    -U and -Kundef are synonyms.  [cautionend]

-v
+
Specify verbose mode.
-w~n
+
Cause warning message n to be treated as an error condition.
-w+n
+
Specify that warning number n should not be suppressed.
-wn
+
Suppress warning message number n.


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.