Alias-Name:
SET-DIAGNOSTIC-PROPERTIES
Mit dieser Anweisung kann man eine eigene Liste der Compilermeldungen erzeugen und für diese Liste diverse Ausgabeziele festlegen. Außerdem lassen sich Meldungsgewichte festlegen und Fehlerbedingungen für den Abbruch einer Übersetzung vereinbaren.
MODIFY-DIAGNOSTIC-PROPERTIES | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MINIMAL-MSG-WEIGHT = *UNCHANGED / *NOTE / *WARNING / *ERROR / *FATAL
Mit dieser Option kann angegeben werden, ab welchem Gewicht die Compilermeldungen in die Meldungsliste aufgenommen werden sollen.
CHANGE-MSG-WEIGHT =
Mit dieser Option kann das vorgegebene Gewicht von Meldungen verändert werden, die das Compiler-Frontend ausgibt (beginnen mit CFE).
Alle Angaben werden gesammelt, auch über mehrere Anweisungen hinweg.
CHANGE-MSG-WEIGHT = *UNCHANGED
Es gilt die Angabe der letzten MODIFY-DIAGNOSTIC-PROPERTIES-Anweisung.
CHANGE-MSG-WEIGHT = list-poss: *NOTE(...) / *WARNING(...) /*ERROR(...)
Das vorgegebene Gewicht von Meldungen wird auf das angegebene Gewicht geändert. Notes können bis zum Gewicht ERROR hochgestuft werden. Warnings können auf das Gewicht NOTE herabgestuft und auf das Gewicht ERROR hochgestuft werden. Errors können bis auf das Gewicht NOTE herabgestuft werden, dies allerdings nur dann, wenn sie in der Originalmeldung mit einem Stern gekennzeichnet sind: [*ERROR]
. Das Fehlergewicht von Fatal Errors kann nicht verändert werden.
MSGID = list-poss: <alphanum-name 7..7>
<alphanum-name> ist der 7-stellige Meldungsschlüssel der Compilermeldung, deren Gewicht geändert werden soll.
CHANGE-MSG-WEIGHT = *DEFAULT(...)
Das Gewicht einer Meldung wird auf den ursprünglichen Wert zurückgesetzt.
MSGID = list-poss: <alphanum-name 7..7>
<alphanum-name> ist der 7-stellige Meldungsschlüssel der Compilermeldung, deren Gewicht auf das ursprüngliche Gewicht zurückgesetzt werden soll.
MSGID = *ALL
Es werden alle Meldungen auf das ursprüngliche Gewicht zurückgesetzt.
SUPPRESS-MSG = *UNCHANGED / *NONE / list-poss: *USE-BEFORE-SET / <alphanum-name 7..7>
Mit dieser Option können Compilermeldungen angegeben werden, die in der Meldungsliste nicht aufgeführt werden sollen. Damit lässt sich die Meldungsliste auf die dem Benutzer wichtigen Meldungen beschränken. Die Meldungen werden trotzdem für die Summary-Meldung gezählt. Auch führt ein Fehler immer dazu, dass kein Modul generiert wird. Dies gilt auch wenn die Ausgabe des Fehlers unterdrückt wird.
Die Angaben werden gesammelt, auch über mehrere Anweisungen hinweg, bis zu einer Angabe von *NONE.
*UNCHANGED
Es gilt die Angabe der letzten MODIFY-DIAGNOSTIC-PROPERTIES-Anweisung.
*NONE
Alle Compiler-Meldungen werden dem Wert von MINIMAL-MSG-WEIGHT entsprechend ausgegeben. Die bisherigen Angaben von SUPPRESS-MSG werden zurückgesetzt.
*USE-BEFORE-SET
Die Ausgabe von Warnings wird unterdrückt, wenn im Programm lokale auto
-Variablen benutzt werden, bevor ihnen ein Wert zugewiesen wurde.
<alphanum-name 7..7>
Ist der Meldungsschlüssel einer Compilermeldung vom Gewicht NOTE oder WARNING, die nicht ausgegeben werden soll.
Beispiel
SUPP-MSG=(CFE2802,CFE9095)
MAX-ERROR-NUMBER = *UNCHANGED / 50 / <integer 1..255>
Diese Option legt die Anzahl von Errors fest, ab der der Compiler mit der Übersetzung nicht mehr fortfahren soll (Notes und Warnings werden eigens gezählt).
*UNCHANGED
Es gilt die Angabe der letzten MODIFY-DIAGNOSTIC-PROPERTIES-Anweisung.
50
Der Compiler bricht jede Übersetzung ab, die mehr als 49 Errors aufweist.
<integer 1..255>
Gibt die Fehlerzahl an, ab der der Übersetzungslauf abgebrochen werden soll.
ANSI-VIOLATIONS = *UNCHANGED / *WARNING / *ERROR
Diese Option ist nur zusammen mit der Angabe LANGUAGE=...(STRICT=YES) (siehe MODIFY-SOURCE-PROPERTIES) sinnvoll verwendbar.
*WARNING ist voreingestellt und bewirkt die Ausgabe von Warnings, wenn Sprachkonstrukte benutzt werden, die zwar eine Abweichung vom relevanten C- bzw. C++-Standard, jedoch keine schwere Verletzung der dort festgelegten Sprachregeln darstellen (z.B. implementierungsspezifische Spracherweiterungen, siehe Abschnitt „Erweiterungen gegenüber ANSI-/ISO-C“ und Abschnitt „Erweiterungen gegenüber ANSI-/ISO-C++“).
Bei Angabe von *ERROR werden in solchen Fällen Errors ausgegeben. Schwerere Verletzungen führen automatisch zu Errors.
SHOW-COLUMN = *UNCHANGED / *YES / *NO
Diese Option legt fest, ob die Diagnosemeldungen des Compilers in kurzer oder in ausführlicher Form generiert werden.
*UNCHANGED
Es gilt die Angabe der letzten MODIFY-DIAGNOSTIC-PROPERTIES-Anweisung.
*YES
Zusätzlich zur Diagnosemeldung wird die Original-Quellprogrammzeile ausgegeben, in der die Fehlerstelle markiert ist (mit ^
).
*NO
Es unterbleibt die Ausgabe der markierten Quellprogrammzeile.
SHOW-INCLUDES = *UNCHANGED / *YES / *NO
Bei Angabe von *YES werden die Namen der vom Präprozessor verwendeten Include-Dateien ausgegeben.
VERBOSE = *UNCHANGED / *NO / list-poss: *VERSION / *MESSAGES
*UNCHANGED
Es gilt die Angabe der letzten MODIFY-DIAGNOSTIC-PROPERTIES-Anweisung.
*VERSION
Für jede bearbeitete Datei wird die Meldung CDR9402 ausgegeben. Beim Bindevorgang werden zusätzlich die genutzte CRTE-Version sowie die Namen der CRTE-Bibliotheken ausgegeben.
*MESSAGES
Derzeit ist diese Angabe nur in den Modi C++ V3 und C++ 2017 sinnvoll. Sie bewirkt, dass zusätzliche Informationen zur automatischen Template-Instanziierung durch den Prälinker auf SYSOUT ausgegeben werden.
GENERATE-ETR-FILE = *UNCHANGED / *NO / *ALL-INSTANTIATIONS / *ASSIGNED-INSTANTIATIONS
Mithilfe dieser Option kann eine ETR-Datei (ETR=Explicit Template Request) erstellt werden, die die Instanziierungs-Anweisungen für die verwendeten Templates enthält (siehe dazu auch Abschnitt „Generieren von expliziten Template-Instanziierungsanweisungen(ETR-Dateien)“). Der Dateiname wird vom Namen der Objekt-Datei abgeleitet und hat den Suffix .etr.
Der Standardwert der Option ist *NO, dh. es wird keine ETR-Datei erzeugt. Bei der Angabe *ALL-INSTANTIATIONS werden alle verwendeten Instanzen protokolliert, bei *ASSIGNED-INSTANTIATIONS nur diejenigen, die vom Prälinker dieser Datei zugeordnet werden und somit in der ii-Datei stehen.
OUTPUT = *UNCHANGED / list-poss(10): *SYSOUT / *SYSLST / *STD-FILE / *SOURCE-LOCATION / <filename 1..54> / <posix-pathname> / *LIBRARY-ELEMENT(...)
Mit der OUTPUT-Option können für die Meldungsliste diverse Ausgabeziele parallel vereinbart werden.
OUTPUT = *SYSOUT
Standardmäßig werden die Übersetzungsmeldungen am Bildschirm (Systemdatei SYSOUT) ausgegeben.
OUTPUT = *SYSLST
Die Meldungsliste wird in die temporäre Systemdatei SYSLST geschrieben, von wo aus sie nach Ende der Task (LOGOFF) auf den Drucker ausgegeben wird.
OUTPUT = *STD-FILE
Die Meldungsliste wird in eine katalogisierte BS2000-Datei geschrieben. Der Name dieser Datei wird aus dem Namen des Quellprogramms abgeleitet:
Quelle | *SYSDTA | BS2000-Datei | PLAM-Bibliothek | POSIX-Datei |
Standardname | CSTDDIAG.DIAG | datei.DIAG | bib-elem.DIAG | datei.DIAG |
Wenn das Quellprogramm in einer PLAM-Bibliothek steht, werden im Standard-Dateinamen der Bibliotheks- und Elementname der Quelle verwendet und mit einem Bindestrich verbunden (bib-elem). Die Regeln zur Bildung der Standardnamen durch den Compiler sind ausführlich im Abschnitt „Standardnamen für Ausgabebehälter“ dargestellt.
OUTPUT = *SOURCE-LOCATION
Ausgabeort und Name der Meldungsliste werden wie folgt aus dem Ort und Namen des Quellprogramms abgeleitet:
Quelle | *SYSDTA | BS2000-Datei | PLAM-Bibliothek | POSIX-Datei |
Ausgabeort | BS2000-Datei | BS2000-Datei | Bibliothek der Quelle | Dateiverzeichnis der |
Standardname | CSTDDIAG.DIAG | datei.DIAG | elem.DIAG (Typ D) | datei.diag |
Die Regeln zur Bildung der Standardnamen durch den Compiler sind ausführlich im Abschnitt „Standardnamen für Ausgabebehälter“ dargestellt.
OUTPUT = *TO-LISTING
Der Diagnose-Output wird an das Ende der Listing-Datei als eigenes Teil-Listing geschrieben. Die Meldungsliste wird nach dem Meldungsgewicht sortiert, wobei Meldungen ohne Gewicht (Informationsmeldungen des Compilers) nicht mit übernommen werden. Der Name der Ausgabedatei wird bestimmt durch den Wert der Option OUTPUT bei MODIFY-LISTING-PROPERTIES. Die dort beschriebenen Restriktionen bezüglich der Modi C++ V3 und C++ 2017 müssen beachtet werden.
OUTPUT = <filename 1..54>
Die Meldungsliste wird in eine katalogisierte BS2000-Datei mit dem angegebenen Namen geschrieben. Bei der Übersetzung mehrerer Quellprogramme ist diese Angabe nicht sinnvoll, weil die Datei jedes Mal überschrieben wird.
OUTPUT = <posix-pathname>
Die Meldungsliste wird in das POSIX-Dateisystem geschrieben.
Als <posix-pathname> ist sowohl ein Dateiname als auch ein Dateiverzeichnis zugelassen. Zur Beschreibung des Begriffs <posix-pathname> siehe "Compiler-Ein-/Ausgaben im POSIX-Dateisystem".
Bei der Angabe eines Dateinamens wird die Meldungsliste unter diesem Namen abgelegt.
Bei der Angabe eines Dateiverzeichnisnamens dvz wird die Meldungsliste für jedes übersetzte Quellprogramm unter dem Standardnamen quelldatei.diag in das Dateiverzeichnis dvz geschrieben (siehe auch Abschnitt „Standardnamen für Ausgabebehälter“).
Die mit <posix-pathname> angegebenen Dateiverzeichnisse müssen bereits existieren.Bei der Übersetzung mehrerer Quellprogramme ist die Angabe eines Dateinamens nicht sinnvoll, weil die Datei jedes Mal überschrieben wird.
OUTPUT = *LIBRARY-ELEMENT(...)
Es wird angegeben, in welcher PLAM-Bibliothek (LIBRARY=) und unter welchem Elementnamen (ELEMENT=) die Meldungsliste abgelegt werden soll. Die Elemente werden unter dem Typ D abgespeichert.
LIBRARY = *STD-LIBRARY
Die Meldungsliste wird standardmäßig in die Bibliothek SYS.PROG.LIB geschrieben.
LIBRARY = *SOURCE-LIBRARY
Die Meldungsliste wird in die PLAM-Bibliothek geschrieben, in der das Quellprogramm steht.
Die Angabe *SOURCE-LIBRARY ist unzulässig, wenn das Quellprogramm aus einer katalogisierten BS2000-Datei, einer POSIX-Datei oder über SYSDTA eingelesen wird.
LIBRARY = <filename 1..54>
Die Meldungsliste wird in die PLAM-Bibliothek mit dem angegebenen Namen geschrieben.
LIBRARY = *LINK(...)
LINK-NAME = <filename 1..8>
Statt eines katalogisierten Bibliotheksnamens kann auch ein Linkname angegeben werden. Der Linkname muss vor Aufruf des Compilers mit dem ADD-FILE-LINK-Kommando der PLAM-Bibliothek zugeordnet worden sein.
ELEMENT = *STD-ELEMENT(...)
Standardmäßig wird der Elementname der Meldungsliste aus dem Namen des Quellprogramms abgeleitet:
Quelle | *SYSDTA | BS2000-Datei | PLAM-Bibliothek | POSIX-Datei |
Standardname | CSTDDIAG.DIAG | datei.DIAG | elem.DIAG | datei.DIAG |
Die Regeln zur Bildung der Standardnamen durch den Compiler sind ausführlich im Abschnitt „Standardnamen für Ausgabebehälter“ dargestellt.
VERSION = *UPPER-LIMIT
Enthält die Elementangabe keine Versionsbezeichnung, erhält das Element die höchstmögliche Versionsnummer.
VERSION = <composed-name 1..24 with-under>
Die Meldungsliste wird in das Element mit der angegebenen Versionsbezeichnung geschrieben.
ELEMENT = <composed-name 1..64 with-under>(...)
Die Meldungsliste wird in ein Bibliothekselement (Typ D) mit dem angegebenen Namen geschrieben. Bei der Übersetzung mehrerer Quellprogramme ist die Angabe eines Elementnamens nicht sinnvoll, weil das Element jedes Mal überschrieben wird.
VERSION = *UPPER-LIMIT / <composed-name 1..24 with-under>
Die Version kann in gleicher Weise angegeben werden, wie oben unter ELEMENT=*STD-ELEMENT(...) beschrieben.