Chapter Contents

Previous

Next
Translator Options

Option Descriptions

The following list gives detailed descriptions of the options listed in Translator Options.

alias ( -Kalias under USS)
specifies that the global optimizer should assume worst-case aliasing. See the
optimize
option in the SAS/C Compiler and Library User's Guide for details on this option. This option can only be used in conjunction with the optimize option.

arlib
identifies an AR370 archive in which the generated object code is to be stored. arlib is valid under TSO only and cannot be specified together with the object option.

The arlib option is specified as follows:

arlib(dsname)

where dsname specifies the name of an AR370 archive. If the archive belongs to another user, you must specify the fully qualified name of the data set, and the name must be preceded and followed by three apostrophes, as in the following example:

arlib('''master.object.a''')

The extra apostrophes are required by the CLIST language. If the data set name is not enclosed within three apostrophes, it is assumed to be a data set with a final qualifier of A.

You can use the member option to specify the archive member name in which the object code is to be stored. If arlib is specified and member is not specified, the default member name is the partitioned data set (PDS) member name of the source file. If the source file is not a PDS member, you must supply a member name if you use the arlib option.

asciiout (-Kasciiout under UNIX System Services)
requests ASCII translation of character and string literals. The default is noasciiout, and the minimum abbreviation is as. When the asciiout option is used, the compiler generates string literals and character literals using the ASCII character set instead of the default EBCDIC character set. String literals are translated from IBM Code Page 1047 and ISO 8559-1, the Latin-1 character set.

at ( -Kat under USS)
allows the use of the call-by-reference operator @.

autoinst ( -Kautoinst under USS)
controls automatic implicit instantiation on template functions and static data members of template classes. The compiler organizes the output object module so that COOL can arrange for only one copy of each template item to be included in the final program. To correctly perform the instantiation, the autoinst option must be enabled on a compilation unit that contains both a use of the item and its corresponding template definition.

Note:    Automatic instantiation requires that the translation of the C++ code to C code must occur as part of the same process that generates the object module. Therefore, while the savec and the tronly options can be used with the autoinst option, the resulting C code cannot be compiled with the C compiler to produce an equivalent object module at a later time.  [cautionend]

In Release 6.50, the compiler allows for the generation of automatically instantiated template functions, when the autoinst compiler option is specified. When this option is specified, the compiler uses a "shelled object" format containing the output of the primary compilation and all template functions needed by that compilation. In this release, COOL has been modified to process this new object format and the "shelled" template functions.

When a "shelled object" is encountered by COOL, the primary object deck is processed, and any template function objects are processed if a template function by the same name has not already been processed. This results in the inclusion of the first template function found with a given name.

Note:   "shelled objects" are specified in the same manner as any other object deck.  [cautionend]

bitfield ( -Kbitfield=n under USS)
enables you to specify the allocation unit to be used for plain int bitfields. (C++, unlike C, supports bitfields that are not integers.)

The following allocation units are valid:
1 indicates the allocation unit is a char .
2 indicates the allocation unit is a short .
4 indicates the allocation unit is a long .

The default allocation unit is a long (4).

Under TSO and OS/390 batch, the bitfield option is specified as follows:

bitfield(value)

For example, the following option specification indicates the allocation unit for int bitfields is a short:

bitfield(2)

Under CMS, the bitfield option is specified as follows:

bitfield value

For example, the following option specification indicates the allocation unit for int bitfields is a long :

bitfield 4

This option cannot be negated.

bytealign ( -Kbytealign under USS)
aligns all data on byte boundaries. Most data items, including all those in structures, are generated with only character alignment. Because formal parameters are aligned according to normal IBM 370 conventions even when you specify the bytealign option, you can call functions compiled with byte alignment from functions that are not compiled with byte alignment and vice versa.

You can attach the _ _noalignmem keyword to structure definitions to force the structure to be byte-aligned. Use the _ _alignmem keyword to force structures to be normally aligned even in modules compiled with the bytealign option.

If functions compiled with and without byte alignment are to share the same structures, you must ensure that such structures have exactly the same layout. The layout is not exactly the same if any structure element does not fall on its usual boundary; for example, an int member's offset from the start of the structure is not divisible by 4. You can force such alignment by adding unreferenced elements of appropriate length between elements as necessary. If a shared structure does contain elements with unusual alignment, you must compile all functions that reference the structure using byte alignment.

complexity ( -Kcomplexity=n under USS)
specifies the maximum "complexity" the function can have and remain eligible for default inlining. This option applies to functions that have not been defined using the inline keyword from C++ or the _ _inline keyword from SAS/C and is used only in conjunction with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for more details.

dbgmacro ( -Kdbgmacro under USS)
specifies that definitions of C macro names should be saved in the debugger file. Note that this substantially increases the size of the file.

dbgobj ( -Kdbgobj under USS)
causes the compiler to place the debugging information in the object, instead of a separate debugger file. Debugging of automatically instantiated compiled objects will not work when the debugging information is not placed in the object.

If automatic instantiation is specified with the autoinst option, dbgobj is enabled automatically.

By default, the dbgobj option is off. The short form for the option is -xc .

debug ( -Kdebug[=filename] under USS)
allows the use of the SAS/C Debugger. Note that the debug option causes the compiler to suppress all optimizations as well as store and fetch variables to or from memory more often.

define ( -D[sym=val] under USS)
defines a symbol to an (optional) value.

Under OS/390 batch and CMS, you can use the define option more than once, to define any number of symbols. If the same symbol is defined twice, only the last value applies.

Under TSO, the define option can be used only once. If you specify this option more than once, only the last specification is used. Also note that TSO uppercases the text of the define option before it is passed to the translator.

Under TSO, the specification is the following:

define(symbol) 
define(symbol=value)

Here is an example:

define(USERDATA)
define(TSO=1)

Under CMS, the specification is the following:

define symbol 
define symbol=value

Here are some examples:

define USERDATA 
define CMS=1

Under OS/390 batch, the define option is specified as follows:

define(symbol)

Here are some examples:

define(USERDATA) 
define(MYSYM=ABC)

depth ( -Kdepth=n under USS)
specifies the maximum depth of function calls to be inlined. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for more information.

Specify depth as follows, where n is between 0 and 6, inclusive (the default is 3):

System Syntax
OS/390 batch depth (n)
TSO depth(n)
CMS depth n

digraph ( -Kdigraph[n] under USS)
enables the translation of the International Standard Organization (ISO) digraphs and the SAS/C digraph extensions.

Specify digraph as follows:

System Syntax
OS/390 Batch digraph(n)
TSO digraph(n)
CMS digraph n

where n is between 0 and 3, inclusive. Specify n as follows:
0 Turn off all digraph support.
1 Turn on New ISO digraph support.
2 Turn on SAS/C Bracket digraph support -- '(|' or '|)'
3 Turn on all SAS/C digraphs. This alone does not activate the new ISO digraphs.

The default options are

digraph(1) and digraph(2)

See Special characters and Alternate forms for operators and tokens for more information.

dlines
suppresses emission of #line directives in the preprocessed C++ source code. This option has an effect only when the pponly option is in effect.

dollars ( -Kdollars under USS)
allows the use of the $ character in identifiers, except as the first character.(footnote 1)

enforce ( -w~n under USS)
treats one or more translator warning messages as error messages. Each warning message is identified by an associated message number. Messages whose numbers have been specified are treated as errors, and the translator return code is set to 12 instead of 4.

Under TSO, specify the enforce option as follows:

enforce (n)

where n is the message number you want to enforce. If more than one warning message is to be enforced, specify each number in a comma-delimited list, enclosed by quotes, as follows:

enforce('n1,n2,...')

Under CMS, use the following:

enforce n 
enforce n1 n2 ...

Under OS/390 batch, use the following:

enforce(n) 
enforce(n1,n2,...)

Any number of warning messages can be specified. If both suppress and enforce specify the same warning message number, the warning is enforced.

except
Enables code generation for exception handling in the C++ translator. This option is not enabled by default because it can add additional overhead to the generated code. If exception handling is required then it is recommended that all C++ compilation units be compiled with the -Kexcept option. Otherwise unpredictable effects may occur if an exception is thrown.

files
replaces SYS in translator DDnames with the other prefix. This option is valid for OS/390 batch only. The only DDname in which SYS cannot be replaced is SYSTERM. The prefix can contain from one to three characters. For example, the following specification causes the SYS prefix to be replaced by CXX:
files(cxx)

In this case, some of the DDname replacements are as follows:

Original Replacement
SYSTROUT CXXTROUT

freg ( -Kfreg=n under USS)
specifies the maximum number of floating-point registers that the optimizer can assign to register variables in a function. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for additional details.

Specify freg as follows, where n is between 0 and 2, inclusive (the default is 2):

System Syntax
TSO freg(n)
CMS freg n

greg ( -Kgreg=n under USS)
specifies the maximum number of registers that the optimizer can assign to register variables in a function. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library Guide for more details.

Specify greg as follows, where n is between 0 and 6, inclusive (the default is 6):

System Syntax
TSO greg(n)
CMS greg n

hlist ( -Khlist under USS)
includes standard header files in the formatted source listing. These files are included using the following syntax:
#include <name.h>
or
#include <name>

hmulti ( -Khmulti under USS)
allows reinclusion of a header file specified within angle brackets. hmulti is the default. If nohmulti is used, then the translator does not reinclude a header file specified within angle brackets.

hxref ( -Khxref under USS)
prints references in standard header files in the cross reference listing. See hlist for a description of header files.

ilist ( -Kilist under USS)
includes user header files referenced by the #include statement in the formatted source listing. The #include filename appears in the right margin of each line taken from the #include file. See also hlist

imulti ( -Kimulti under USS)
allows reinclusion of a header file specified within double quotes. imulti is the default. If noimulti is used, then the translator does not reinclude a header file specified within double quotes.

indep ( -Kindep under USS)
generates code that can be called before the C framework is initialized or code that can be used for interlanguage communication. See the SAS/C Compiler and Library User's Guide for a detailed description of the use of this option.

inline ( -Kinline under USS)
inlines small functions identified by complexity and those with the C++ inline keyword or the SAS/C _ _inline keyword. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for more details.

inlocal ( -Kinlocal under USS)
inlines single-call static functions. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for more information.

ixref ( -Kixref under USS)
lists references in user #include files.

lib
identifies a header file library and is valid under TSO only. The lib option is specified as follows:
lib(dsname)

This option indicates the name of a library that contains header files, that is, one containing members that are to be included using the #include <member.h> (or <member> ) form of the #include statement. If the library belongs to another user, the fully qualified name of the data set must be used and the name must be preceded and followed by three apostrophes (because of CLIST language requirements). No final qualifier is assumed for a lib data set.

Using nolib indicates that no header file libraries are required other than the standard library provided with the translator. nolib is the default.

lineno ( -Klineno under USS)
allows identification of source lines in run-time messages. (When lineno is specified, module size is increased because of the generation of line number and offset tables.)

loop ( -Kloop under USS)
specifies that the global optimizer should perform loop optimizations. See the optimize option in the SAS/C Compiler and Library User's Guide for more details on this option. This option is used only with the optimize option.

maclist ( -Kmaclist under USS)
prints macro expansions. Source code lines containing macros are printed before macro expansion.

member
is used to specify the member of an AR370 archive in which the object code is to be stored. member is valid under TSO only. The member option is specified as follows:
member(member-name)

where member-name is a valid OS/390 member name.

The member option is valid only if the arlib option is also specified. Otherwise, member is ignored.

If arlib is specified and member is not specified, the default member name is the PDS member name of the source file. If the source file is not a PDS member, you must supply a member name if you use the arlib option.

mention ( -w+n under USS)
specifies that the translator warnings whose numbers are specified as n1, n2, and so on are not to be suppressed. (See the suppress option as well.)

Under TSO, specify the mention option as follows:

mention(n)

where n is the number of the message associated with the warning condition. If more than one warning condition is to be mentioned, specify the numbers in a comma-delimited list, enclosed by quotes, as follows:

mention('n1,n2,...')

Under CMS, use the following:

mention n mention n1 n2 ...

Under OS/390 batch, use the following:

mention(n) 
mention(n1,n2...)
Any number of warning conditions can be specified.

object ( -o filename under USS)
outputs object code.

Under TSO, this option is specified as follows:

object(dsname)

where dsname names the data set in which the compiler stores the object code. The data set name can be a PDS member. If the data set belongs to another user, the fully qualified name of the data set must be specified and the name must be preceded and followed by three apostrophes, as in the following example:

OBJECT('''YOURLOG.PROJ4.OBJ(PART1)''')

The extra apostrophes are required for the CLIST language. If the data set name is not specified within three apostrophes, it is assumed to be a data set with a final qualifier of OBJ.

Using noobject indicates that no object code is to be stored by the compilation.

When neither object nor noobject is specified under TSO, the default depends on how the source data set name is specified, as explained here:

Under TSO, if both noobject and omd are specified, object code is generated but discarded after the OMD is run. See the SAS/C Compiler and Library User's Guide for a discussion of the omd option.

Under CMS, the default is object . By default, object code is generated in pass two of the compiler. If you specify noobject , pass two is suppressed and object code is not generated. Under CMS, if both noobject and omd are specified, neither pass two nor the OMD is run.

oldforscope ( -Koldforscope under USS)
specifies that the scope of a variable defined in the initialization clause of a for statement will follow the old rules concerning scoping. The new ANSI scoping rules specify that the scope of a variable defined in the for loop initialization clause only includes the for statement and its associated loop body. Therefore, the code in the following example would not work under the new scoping rules:
for (int i=0; i < n; ++i)
    if ( f(i) )
    break;
if ( i < n ) // the 'i' declared in
             // the 'for' loop
   do_something(); // broke out of
                   //the loop...

For compatibility with the C++ Standard, the oldforscope option is disabled by default.

optimize ( -Koptimize under USS)
executes the global optimizer phase of the compiler. Optimizing is the default unless you use the debug option. See the optimize option in the SAS/C Compiler and Library User's Guide for details on this option.

overload ( -Koverload under USS)
turns on the recognition of the overload C++ keyword. If this option is on, the translator recognizes the keyword syntax as documented (for example, in Stroustrup's The C++ Programming Language, Second Edition). The overload keyword is obsolete in modern C++. The overload keyword is treated as a reserved word only if the overload option is turned on; it is treated as an identifier otherwise.

overstrike ( -Koverstrike under USS)
prints special characters in the listing file as overstrikes. This option is useful, for example, if you do not have a printer that can print the special characters left brace, right brace, left bracket, right bracket, and tilde. See the SAS/C Compiler and Library User's Guide for more information on special characters.

pagesize ( -Kpagesize=nn under USS)
defines the number of lines per page of source and cross reference listings. pagesize is specified as follows:

System Syntax
OS/390 batch pagesize (nn)
TSO pagesize (nn)
CMS pagesize nn

nn lines per page of listing are printed at the location determined by the print option. The default is 55 lines per page. (The default location is different for each operating system and is described in the discussion of print .)

pflocal ( -Kpflocal under USS)
assumes that all functions are _ _local unless _ _remote is explicitly specified in the declaration. The default is nopflocal .

posix ( -Kposix under USS)
informs the compiler that the program is POSIX-oriented and that compile-time and run-time defaults should be changed for maximum POSIX compatability. The default is noposix under TSO, CMS, and OS/390 batch and --Kposix under USS.

Specifically, the posix option has the following effects on compilation:

Additionally, if any compilation in a program's main load module is compiled with the posix option, it will have the following effects on the execution of the program:

Note that you should not use the posix translator option when compiling functions that can be used by both POSIX and other applications that are not POSIX.

Under USS and UNIX, use -Kposix .

For details about developing POSIX applications, see the SAS/C Compiler and Library User's Guide.

pponly ( -P under USS)
creates a file containing preprocessed source code for this translation. Preprocessed source code has all macros and #include files expanded. If the pponly option is used, all syntax checking (except in preprocessor directives) is suppressed, no listing file is produced, and no object code is generated. The preprocessor used by the pponly option is the C++ preprocessor, not the C preprocessor. These two preprocessors are identical, except that the C++ preprocessor accepts C++ style comments as well as C style comments.

Under TSO, use the following:

pponly(dsname)

where dsname indicates the name of a data set in which the preprocessed source file is to be stored. If the library belongs to another user, the fully qualified name of the data set must be used and the name must be preceded and followed by three apostrophes because of the CLIST language requirements. No final qualifier is assumed for a pponly data set.

Under CMS, use pponly . The output file is written to a file with the same filename as the source file and a filetype of PP.

Under OS/390 batch, use pponly . The output file is written to the data set allocated to the DDname SYSTROUT. Because the default SYSTROUT data set is temporary, you should alter the SYSTROUT DD statement to refer to a permanent file.

print ( -Klisting[=filename] under USS)
produces a listing file.

Under OS/390 batch, the print option produces a listing file and sends it to SYSPRINT. The listing file also includes error messages. If noprint is used, the listing file is suppressed. Under OS/390 batch, the default is print .

In TSO, the print option is used with both the LCXX CLIST and the OMD370 CLIST to specify where the listing file is to be stored.

If you specify the following, the listing file is printed at the terminal:

print (*)

If you use print (*) , you do not need to use the term compiler option. If you do, error messages are sent to the terminal twice.

The following stores the listing file in the named data set:

print (dsname)
This data set must be sequential; a partitioned data set member is not allowed. If the data set belongs to another user, the fully qualified name of the data set must be specified, and the name must be preceded and followed by three single quotes because of the CLIST language requirements. If the data set name is not specified within three quotes, it is assumed to be a data set with a final qualifier of LIST.

The following form specifies that no listing file is to be produced:

noprint
If you use noprint , the compiler ignores all other listing options, such as pagesize and ilist . The xref option also is ignored.

If the source data set name is enclosed in single quotes, the default is noprint . Otherwise, the default is print . The listing data set name is determined by replacing the final CXX in the source data set name with LIST and ignoring any member name specification.

You cannot specify noprint when you use the OMD370 CLIST.

If you do not specify print when you use the OMD370 CLIST, the default is print (*) if the object data set name is enclosed by single quotes. Otherwise, the listing data set name is determined by replacing the final OBJ qualifier in the source data set name with LIST, and any member name specification is ignored.

Under CMS, print spools the listing file to disk. noprint suppresses the listing file. noprint is an alternative to the print option. You can also give the print option to the OMD370 EXEC.

Under USS, by default, no listing file is generated unless you specify the -Klisting option. You can supply the name of the listing file by specifying -Klisting=filename . If -Klisting is specified without a filename, the listing is stored in an HFS file with a .lst extension. See the object option for a description of this process.

rdepth ( -Krdepth=n under USS)
defines the maximum level of recursion to be inlined (the default is 0). This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for more details. rdepth is specified as follows:

System Syntax
TSO rdepth(n)
CMS rdepth n

redef ( -Kredef under USS)
allows redefinition and stacking of #define names.

refdef ( -Krefdef under USS)
causes the compiler to generate code that forces the use of the strict ref/def model for reentrant external variables. The default is norefdef , which specifies that the compiler use the common model. Note that this option has meaning only when used in conjunction with the rent or rentext options. When norent is used, the compiler always uses the strict ref/def model; this cannot be overridden by the user.

rent ( -Krent under USS)
allows reentrant modification of static and external data. If you use the tronly option (translate only) and use the rent option as well, be sure to specify the rent option at compile time.

rentext ( -Krentext under USS)
allows reentrant modification of external data. If you use the tronly option (translate only) and use the rentext option as well, be sure to specify the rentext option at compile time.

rtti ( -Krtti under USS)
enables the generation of information required for RTTI on class objects that have virtual functions. By default, this option is not enabled because it increases the number and the size of the tables used to implement virtual function calls.

If your program uses the dynamic_cast or typeid operators, the rtti option must be specified for each compilation unit to assure the class objects have the information required for dynamic type identification.

savec
creates a file containing the C source code emitted by the translator for this compilation. Translated source code has all macros and #include files expanded. Unless you use the savec option, the translator output is stored in a temporary data set and is discarded after compilation.

Under TSO, use the following:

savec(dsname)

where dsname indicates the name of a data set in which the translated source file is to be stored. If the library belongs to another user, the fully qualified name of the data set must be used, and the name must be preceded and followed by three apostrophes because of the CLIST language requirements. No final qualifier is assumed for a savec data set.

Under CMS, use

savec fileid

where fileid is any valid CMS filename. Under CMS, savec must be the last option on the command line; the remainder of the command line is interpreted as the fileid of the output file.

Under OS/390 batch, you cannot use the savec option. The output file is, by default, written to the data set allocated to the DDname SYSTROUT, which is normally a temporary data set. To override the default SYSTROUT DD statement, use your own DD statement, specifying a permanent file.

Note:    If you compile the C source saved by the savec option with the SAS/C Compiler, you must compile with the cxx compiler option, which informs the compiler that it is compiling C code resulting from C++ translation.  [cautionend]

size
specifies that the global optimizer should favor optimizations that reduce the size of the generated code. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for details on this option.

sname ( -Ksname=sname under USS)
defines the sname used by the translator and compiler. The name cannot be longer than seven characters. If name is longer than seven characters, it is truncated. The name cannot contain any national characters and can contain a dollar sign ($) only if you also specify the dollars option.

Each source file in a multisource file program should be translated using a unique value for the sname option. CLINK detects duplicate snames and terminates the link process. Usually, the default sname is sufficient to ensure uniqueness. For more information on snames , see the SAS/C Compiler and Library User's Guide.

Under TSO and OS/390 batch, the specification is as follows:

sname(name)

where name defines the sname and is unique to this source file. If you do not use the sname option, the sname defaults to the member name of the source file if it is a PDS member, or to NOSNAME otherwise.

Under CMS, the specification is as follows:

sname name

where name defines the sname and is unique to this source file. If you do not use the sname option, the sname defaults to the filename of the source file.

source ( -Ksource under USS)
outputs a formatted source listing of the program to the listing file. (The default location of the listing file is different for each operating system and is described in the discussion of print .)

nosource suppresses only the source listing; the cross reference listing is still printed if requested with the xref option.

The source option has no effect on the OMD listing if an OMD listing is requested. Whether source code is merged into the OMD listing is controlled by the merge compiler option.

strict ( -Kstrict under USS)
enables an extra set of warning messages for questionable or nonportable code. For more information on error messages, see the SAS/C Software Diagnostic Messages, Release 6.50manual.

stringdup ( -Kstringdup under USS)
creates a single copy of identical string constants.

suppress ( -wn under USS)
ignores one or more translator warning messages. Each warning message is identified by an associated message number. Messages whose numbers have been specified are suppressed. No message is generated, and the translator return code is unchanged.

Under TSO, specify the suppress option as follows:

suppress(n)

where n is the number of the message associated with the warning condition. If more than one warning message is to be suppressed, specify the numbers in a comma-delimited list, enclosed by quotes, as follows:

suppress('n1,n2,...')

Under CMS, use the following:

suppress n 
suppress n1 n2 ...

Under OS/390 batch, use the following:

suppress(n) 
suppress(n1,n2 ...)

Any number of warning messages can be specified. If both suppress and enforce specify the same message number, the warning is enforced.

Note that suppress suppresses only translator messages, not messages generated by the compiler.

time
specifies that the global optimizer should favor optimizations that reduce the execution time of the generated code. This option is used only with the optimize option. See the optimize option in the SAS/C Compiler and Library User's Guide for details on this option.

tmplfunc ( -Ktmplfunc under USS)
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.

trans ( -Ktrans under USS)
translates special characters to their listing file representations. Default representations for these characters are

Character Listing File Representation
left brace 0x8b

{

right brace 0x9b

}

left bracket 0xad

[

right bracket 0xbd

]

not sign (exclusive or) 0x5f

¬

tilde 0xa1

° (degree symbol)

backslash 0xbe

[ne]

vertical bar (exclusive or) 0x4f

|

pound sign 0x7b

#

exclamation point 0x5a

!

If you specify notrans , all special characters are written out as they appear in the source data.

trigraphs ( -Ktrigraphs under USS)
enables translation of ANSI Standard trigraphs. See the SAS/C Compiler and Library User's Guide for more information on trigraphs.

tronly
creates a file containing the C source code that is the result of translating the C++ source for this compilation. Processing is terminated at this stage and does not go on to compile the source. Translated source code has all macros and #include files expanded. The normal syntax and semantic analysis of the C++ code is performed, and warning or error messages are emitted as appropriate.

Under TSO, use the following:

tronly(dsname)

where dsname indicates the name of a data set in which the translated source file is to be stored. If the library belongs to another user, the fully qualified name of the data set must be used, and the name must be preceded and followed by three apostrophes because of the CLIST language requirements. No final qualifier is assumed for a tronly data set.

Under TSO, the tronly , pponly , and savec options are mutually exclusive.

Under CMS, use tronly . The output file is written to a file with the same filename as the source file and a filetype of C.

Under OS/390 batch, use tronly . The output file is written to the data set allocated to the DDname SYSTROUT. Because the default SYSTROUT data set is temporary, you should alter the SYSTROUT DD statement to refer to a permanent file.

Note:    If you compile the C source saved by the tronly option with the SAS/C Compiler, you must compile with the cxx compiler option, which informs the compiler it is compiling C code resulting from C++ translation.  [cautionend]

undef ( -Kundef under USS)
undefines predefined macros. Predefined constants describes the predefined macros for TSO, CMS, and OS/390 batch.

upper ( -Kupper under USS)
outputs all lowercase characters as uppercase in the listing file. upper implies overstrike .

warn ( -Kwarn under USS)
lists translation warning messages. nowarn suppresses warning messages.

xref ( -Kxref under USS)
produces a cross reference listing.

zapmin ( -Kzapmin=n under USS)
specifies the minimum size of the patch area, in bytes. Under TSO and OS/390 batch, use the following:
zapmin(n)

where n refers to the number of bytes in the patch area. The default is 24 bytes.

Under CMS, use the following:

zapmin n

where n refers to the number of bytes in the patch area. The default is 24 bytes.

For more information about the patch area, see the SAS/C Compiler and Library User's Guide. For more information about using the zapmin option, see the zapmin option in the SAS/C Compiler and Library User's Guide.

zapspace ( -Kzapspace=n under USS)
changes the size of the patch area generated by the compiler.

Under OS/390 batch or TSO, use the following:

zapspace(factor)

Under CMS, use the following:

zapspace factor

For more information about the patch area, see the SAS/C Compiler and Library User's Guide. For more information about using the zapspace option, see the zapspace option in the SAS/C Compiler and Library User's Guide.


FOOTNOTE 1:   If you use the all-resident library and the resident.h header file with your C++ program, you must specify the dollars option. [arrow]


Chapter Contents

Previous

Next

Top of Page

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