C/C++ Programmer's Guide (G06.25+)
HP C Implementation-Defined Behavior
HP C/C++ Programmer’s Guide for NonStop Systems—429301-008
A-15
G.3.1 Translation
corresponds to Annex G.3 of the ISO C standard or Appendix F of the ANSI C
standard.
G.3.1 Translation
Each nonempty sequence of white-space characters, other than newline, is retained.
The form of the diagnostic messages displayed by the TNS compiler is such that the
source line is displayed first, followed by a line of the form: file name line diagnostic-
type: diagnostic message. For example:
100 foo ();
**** \prune.$data.test.testc 100 Warning 95:
prototype function declaration not in scope: “foo”
There are different classes of messages. They are:
ERROR
WARNING
The translator return status code for each class of message is:
0 = Normal, voluntary termination with no errors or warnings.
1 = Normal, voluntary termination with warning diagnostics.
2 = Abnormal, voluntary termination with warning diagnostics.
The level of diagnostic can be controlled. Control takes the following form:
•
For ERROR, the ERRORS pragma directs the compiler to terminate compilation if it
detects more than a specified number of errors. If the ERRORS pragma is not used,
the compiler completes a compilation regardless of the number of errors it
diagnoses.
•
For WARNING, the WARN pragma controls the generation of all or selected warning
messages. The WARN pragma enables the compiler to generate all or a selected
set of warning messages, and the NOWARN pragma disables the compiler from
generating all or a selected set of warning messages. The compiler defaults to
WARN, which enables all warning messages.
G.3.2 Environment
No library facilities are available to a freestanding program.
In a freestanding environment, program termination is as follows:
•
The program termination phase of execution begins when a program returns from
the function main, calls the exit() library function, or calls the
terminate_program() library function. In each case, the C library flushes all file
buffers, closes all open files, and causes the process to complete with a certain
completion code, depending on what caused the termination.
•
When the process returns from main with no return value, the process stops with a
completion code of 0, normal termination.