The ISO specification leaves some features to implementors, but requires that implementation choices be documented. The implementation of the generic ARM C library in this respect is as follows:
NULLexpands to the integer constant
If a program redefines a reserved external identifier, an error might occur when the program is linked with the standard libraries. If it is not linked with standard libraries, no error is diagnosed.
__aeabi_assert()function prints information on the failing diagnostic on
stderrand then calls the
*** assertion failed:
The behavior of the
assertmacro depends on the conditions in operation at the most recent occurrence of
The following functions test for character values in the range
EOF(-1) to 255 inclusive:
The fully POSIX-compliant functions
remquol()return the remainder of the division of x by y and store the quotient of the division in the pointer
*quo. An implementation-defined integer value defines the number of bits of the quotient that are stored. In the ARM C library, this value is set to
C99 behavior, with respect to mathlib error handling, is enabled by default.
In RVCT 4.0, this behavior is not enabled by default, but is enabled through the use of
IMPORT __use_c99_matherrin assembly language, or
#pragma import __use_c99_matherrin C.