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

Page 250

Advertising
background image

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.

Advertising