The C standard requires that
conforming implementations provide documentation on how the compiler handles
instances of implementation-defined behavior.
The TI compiler officially supports a
freestanding environment. The C standard does not require a freestanding environment
to supply every C feature; in particular the library need not be complete. However,
the TI compiler strives to provide most features of a hosted environment.
The section numbers in the lists that
follow correspond to section numbers in Appendix J of the C99 standard. The numbers
in parentheses at the end of each item are sections in the C99 standard that discuss
the topic. Certain items listed in Appendix J of the C99 standard have been omitted
from this
list.
J.3.1 Translation
The compiler and related tools
emit diagnostic messages with several distinct formats. Diagnostic messages are
emitted to stderr; any text on stderr may be assumed to be a diagnostic. If any
errors are present, the tool will exit with an exit status indicating failure
(non-zero). (3.10, 5.1.1.3)
Nonempty sequences of white-space
characters are preserved and are not replaced by a single space character in
translation phase 3. (5.1.1.2)
J.3.2 Environment
The compiler does not support
multibyte characters in identifiers, string literals, or character constants.
There is no mapping from multibyte characters to the source character set.
However, the compiler accepts multibyte characters in comments. See Section 5.4 for details (5.1.1.2)
The name of the function called
at program startup is "main". (5.1.2.1)
Program termination does not
affect the environment; there is no way to return an exit code to the
environment. By default, the program is known to have halted when execution
reaches the special C$$EXIT label. (5.1.2.1)
In relaxed ANSI mode, the
compiler accepts "void main(void)" and "void main(int argc, char *argv[])" as
alternate definitions of main. The alternate definitions are re