Neuron c language implementation characteristics, Translation (j.3.1) – Echelon Neuron C User Manual
Page 250

238
Neuron C Language Implementation Characteristics
Neuron C Language Implementation
Characteristics
The International Organization for Standardization (ISO) and International
Electrotechnical Commission (IEC) International Standard ISO/IEC 9899 for the
C programming language states (in Appendix J, Section 3) that each C language
implementation "is required to document its choice of behavior in each of the
areas listed in this subclause. The following [aspects of the language] are
implementation-defined."
The standard defines the term "implementation-defined behavior" as "unspecified
behavior where each implementation documents how the choice is made." Thus,
all these items are language definition issues not specified in the ISO/IEC
standard, but instead left up to the individual implementer. They are also
potential portability issues.
Each heading below references the subclause in Appendix J of the ISO/IEC C
language standard, and the appropriate section of that appendix. In addition,
some of the sections below refer to clauses of Appendix F of the older ANSI C
standard. Each answer applies to the latest implementation, as of the date of
printing, of the Neuron C Version 2 compiler supplied by Echelon Corporation.
Translation (J.3.1)
Q:
How is a diagnostic identified? (Sec. 3.10, Sec. 5.1.1.3)
A:
Each Neuron C diagnostic consists of at least two lines output to the standard
output file. One of these keywords introduces the diagnostic: FYI (For Your
Information), Warning, Error, or FATAL. The remainder of the first line consists
of the full path name of the source or include file to which the diagnostic applies,
followed by a line number, and a column number in parentheses.
The second (and possibly subsequent) lines contain the diagnostic. Each of the
diagnostic message lines is indented one tab stop.
FYI and warning diagnostics
do not
prevent the compiler from successfully
completing translation. All
warning
diagnostics should be examined and
corrected, however, as they are likely to indicate programming problems or poor
programming practice.
Error diagnostics
do
prevent the compiler from successfully completing
translation. They may also result in masking of other errors; thus the compiler
may not be able to locate all errors in a single compilation pass.
FATAL diagnostics prevent the compiler from performing any further
translation. These diagnostics result from resource problems (out of memory,
disk full, and so on) or from internal checking on the compiler itself. Any
diagnostic of the form ***TRAP
n
***, where
n
is a decimal number, should be
reported to Echelon Customer Support.