Alias:
SET-DIAGNOSTIC-PROPERTIES
This statement can be used to create a user-defined list of compiler messages and to specify various output destinations for it. In addition, it can be used to define error message weights and error conditions for aborting compilation.
MODIFY-DIAGNOSTIC-PROPERTIES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MINIMAL-MSG-WEIGHT = *UNCHANGED / *NOTE / *WARNING / *ERROR / *FATAL
This option can be used to specify the minimum message weight for which compiler messages are to be included in the message listing.
CHANGE-MSG-WEIGHT =
This option can be used to change the default message weight for diagnostic messages that are output by the frontend compiler (beginning with CFE). All information is collected, even across multiple instructions.
CHANGE-MSG-WEIGHT = *UNCHANGED
The specification in the last MODIFY-DIAGNOSTIC-PROPERTIES statement applies.
CHANGE-MSG-WEIGHT = list-poss: *NOTE(...) / *WARNING(...) /*ERROR(...)
The default message weight is changed to the specified weight. Notes can be upgraded to the message weight ERROR, and warnings can be downgraded to NOTE or upgraded to ERROR. Errors can be downgraded to the weight of a NOTE, but only if they were flagged with an asterisk in the original message: [*ERROR]
. The message weight for fatal errors cannot be changed.
MSGID = list-poss: <alphanum-name 7..7>
<alphanum-name> is the 7-digit message key of the compiler message for which the message weight is to be changed.
CHANGE-MSG-WEIGHT = *DEFAULT(...)
The message weight is reset to its original value.
MSGID = list-poss: <alphanum-name 7..7>
<alphanum-name> is the 7-digit message key of the compiler message for which the message weight is to be reset to its original value.
MSGID = *ALL
All message weights are to be reset to their original value.
SUPPRESS-MSG = *UNCHANGED / *NONE / list-poss: *USE-BEFORE-SET / <alphanum-name 7..7>
This option can be used to suppress the output of selected compiler messages, thus restricting the listed messages to the ones most important to the user. These messages are still counted for the summary message. When an error is detected, no module will be generated. This is also the case when the output of the error is suppressed. All information is collected, even across multiple instructions, until *NONE is specified.
*UNCHANGED
The specification in the last MODIFY-DIAGNOSTIC-PROPERTIES statement applies.
*NONE
All compiler messages are output according to the value of MINIMAL-MSG-WEIGHT. Previous settings from SUPPRESS-MSG are reset.
*USE-BEFORE-SET
The output of warnings is suppressed if local auto
variables are used in the program before being assigned a value.
<alphanum-name 7..7>
specifies the message key of a compiler message (NOTE or WARNING) to be suppressed.
Example
SUPP-MSG=(CFE2802,CFE9095)
MAX-ERROR-NUMBER = *UNCHANGED / 50 / <integer 1..255>
This option can be used to specify after how many errors the compiler run is to be aborted (notes and warnings are counted separately).
UNCHANGED
The specification in the last MODIFY-DIAGNOSTIC-PROPERTIES statement applies.
50
The compiler aborts any compilation in which more than 49 errors occur.
<integer 1..255>
specifies after how many errors the compiler run is to be aborted.
ANSI-VIOLATIONS = *UNCHANGED / *WARNING / *ERROR
This optionis effective only with the specification of LANGUAGE=...(STRICT=YES) (see MODIFY-SOURCE-PROPERTIES).
*WARNING is the default setting, which means that warnings are issued on detecting the use of language constructs which deviate from the relevant C or C++ standard, but which are not a serious violation of the language rules defined therein (e.g. implementation specific language extensions; see also section “Extensions to ANSI/ISO C” and section “Extensions to ANSI-/ISO-C++”).
If *ERROR is specified here, errors are reported in such cases. Serious violations automatically result in errors.
SHOW-COLUMN = *UNCHANGED / *YES / *NO
This option determines whether the diagnostic messages of the compiler are generated in short or long form.
UNCHANGED
The specification in the last MODIFY-DIAGNOSTIC-PROPERTIES statement applies.
*YES
The original source program line is shown with the error location marked (with ^
) in addition to the diagnostic message itself.
*NO
The marked source program line is not output.
SHOW-INCLUDES = *UNCHANGED / *YES / *NO
If *YES is specified, the names of header files used by the preprocessor are output.
VERBOSE = *UNCHANGED / *NO / list-poss: *VERSION / *MESSAGES
UNCHANGED
The specification in the last MODIFY-DIAGNOSTIC-PROPERTIES statement applies.
*VERSION:
For each edited file the message CDR9402 is output. In link processes, the used CRTE version and the names of the CRTE libraries are also output.
*MESSAGES
This value is currently meaningful only in the language modes C++ V3 and C++ 2017. It causes additional information on automatic template instantiation by the prelinker to be written to SYSOUT.
GENERATE-ETR-FILE = *UNCHANGED / *NO / *ALL-INSTANTIATIONS /*ASSIGNED-INSTANTIATIONS
This option can be used to create an ETR file (ETR=Explicit Template Request) which contains the instantiation statements for the templates used (see section section “Generating explicit template instantiation statements (ETR files)” ). The file name is derived from the name of the object file and has the suffix .etr.
The default for this option is *NO. This does not create an ETR file. If *ALL-INSTANTIATIONS is specified, all used instances are recorded. If *ASSIGNED-INSTANTIATIONS is specified only those instances assigned to this file by the prelinker, and are thus contained in the ii file.
OUTPUT = *UNCHANGED / list-poss(10): *SYSOUT / *SYSLST / *STD-FILE / *SOURCE-LOCATION / <filename 1..54> / <posix-pathname> / *LIBRARY-ELEMENT(...)
The OUTPUT option can be used to request the concurrent output of the message listing at different output destinations.
OUTPUT = *SYSOUT
Compilation messages are written to the terminal (system file SYSOUT) by default.
OUTPUT = *SYSLST
The message listing is written to the temporary system file SYSLST and is sent from there to the printer at the end of the task (at LOGOFF).
OUTPUT = *STD-FILE
The message listing is written to a cataloged BS2000 file. The name of this file is derived from the name of the source program as follows:
Source | *SYSDTA | BS2000 file | PLAM library | POSIX file |
Default name | CSTDDIAG.DIAG | file.DIAG | lib-elem.DIAG | file.DIAG |
If the source program is located in a PLAM library, the library and element name of the source are combined with a hyphen (lib-elem) and used in the default file name. The rules by which the compiler constructs default names are described in detail in the section “Default names for output containers”.
OUTPUT = *SOURCE-LOCATION
The output destination and name of the message listing are derived from the location and name of the source program as follows:
Source | *SYSDTA | BS2000 file | PLAM library | POSIX file |
Output | BS2000 file | BS2000 file | Library of source | Directory of source |
Default name | CSTDDIAG.DIAG | file.DIAG | elem.DIAG (type D) | file.diag |
The rules by which the compiler constructs default names are described in detail in the section “Default names for output containers”.
OUTPUT = *TO-LISTING
The diagnostic output is appended to the end of the listing file as an own sublisting. The message list is sorted according to the message weight but information messages (messages without message weight) are not included in the message list. The name of the output file is defined by the value of the option OUTPUT in MODIFY-LISTING-PROPERTIES. The restrictions given there for the modes C++ V3 and C++ 2017 must be taken into account.
OUTPUT = <filename 1..54>
The message listing is written to a cataloged BS2000 file with the specified name. This specification is not meaningful when compiling multiple source programs, since the file is overwritten in each case.
OUTPUT = <posix-pathname>
The message listing is written to the POSIX file system.
Both a file name and a directory are permitted as <posix-pathname>. See "Compiler I/O in the POSIX file system)" for a description of the term <posix-pathname>.
When a file name is specified, the message listing is stored under this name.
When a directory name dir is specified, the message listing for each compiled source program is written under the default name sourcefile.diag to the directory dir (see also section “Default names for output containers”).
The directories specified with <posix-pathname> must already exist. Note that the specification of a file name is not meaningful when compiling multiple source programs, since the file is overwritten in each case.
OUTPUT = *LIBRARY-ELEMENT(...)
This option specifies the PLAM library (LIBRARY=) and the element name (ELEMENT=) under which the message listing is to be stored. The elements are saved as elements of type D.
LIBRARY = *STD-LIBRARY
The message listing is stored in the library SYS.PROG.LIB by default.
LIBRARY = *SOURCE-LIBRARY
The message listing is written to the PLAM library which contains the source program.The *SOURCE-LIBRARY specification is invalid if the source program is read from a cataloged BS2000 file, a POSIX file or via SYSDTA.
LIBRARY = <filename 1..54>
The message listing is stored in a PLAM library with the specified name.
LIBRARY = *LINK(...)
LINK-NAME = <filename 1..8>
A link name can also be specified instead of the cataloged library name. This link name must already have been assigned to the PLAM library (with the ADD-FILE-LINK command) before the compiler is called.
ELEMENT = *STD-ELEMENT(...)
By default, the element name of the message listing is derived from the name of the source program as follows:
Source | *SYSDTA | BS2000 file | PLAM library | POSIX file |
Default name | CSTDDIAG.DIAG | file.DIAG | elem.DIAG | file.DIAG |
The rules by which the compiler constructs default names are described in detail in the section “Default names for output containers”.
VERSION = *UPPER-LIMIT
If the element entry does not contain a version ID, the highest possible version is used by the compiler.
VERSION = <composed-name 1..24 with-under>
The message listing is stored in the element with the specified version ID.
ELEMENT = <composed-name 1..64 with-under>(...)
The message listing is written to a library element (type D) with the specified name. Note that the specification of an element name is not meaningful when compiling multiple source programs, since the element is overwritten in each case.
VERSION = *UPPER-LIMIT / <composed-name 1..24 with-under>
The version can be specified as described above for ELEMENT=*STD-ELEMENT(...).