Everything
4.1.3 Implementation-defined behavior of C90

(1)

How to identify diagnostic messages (5.1.1.3).

Refer to "10. MESSAGES".

(2)

The semantics of the arguments to main (5.1.2.2.1).

Not defined.

(3)

What constitutes an interactive device (5.1.2.3).

Not defined for the configuration of an interactive device.

(4)

The number of significant initial characters (beyond 31) in an identifier without external linkage (6.1.2).

The first 8,189 characters are handled as significant characters.

(5)

The number of significant initial characters (beyond 6) in an identifier with external linkage (6.1.2).

The first 8,191 characters are handled as significant characters.

(6)

Whether case distinctions are significant in an identifier with external linkage (6.1.2).

Characters in an identifier are case sensitive.

(7)

The members of the source and execution character sets, except as explicitly specified in the Standard (5.2.1).

The values of the members of the source and execution character sets are ASCII code, EUC, SJIS, UTF-8, big5, and gb2312. Japanese and Chinese descriptions in comments and strings are supported.

(8)

The shift states used for the encoding of multibyte characters (5.2.1.2).

A representation format that depends on the shift status is not supported.

(9)

The number of bits in a character in the execution character set (5.2.4.2.1).

A character consists of 8 bits. A multibyte character consists of 16 bits.

(10)

The mapping of members of the source character set (in character constants and string literals) to members of the execution character set (6.1.3.4).

The members of the source character set match the members of the execution character set.

(11)

The value of an integer character constant that contains a character or escape sequence not represented in the basic execution character set or the extended character set for a wide character constant (6.1.3.4).

Specific non-graphical characters can be represented by means of extended notation, consisting of a backslash (\) followed by a lower-case letter. The following are available: \a, \b, \f, \n, \r, \t, and \v. There is no other extended notation; other letters following a backslash (\) become that letter.

Escape sequence

Value (ASCII)

\a

0x07

\b

0x08

\f

0x0C

\n

0x0A

\r

0x0D

\t

0x09

\v

0x0B

(12)

The value of an integer character constant that contains more than one character or a wide character constant that contains more than one multibyte character (6.1.3.4).

If an integer character constant contains four-byte characters (equivalent to four characters in ASCII), all the four bytes are valid values.

If the integer character constant contains five or more bytes, an error message is output.

(13)

The current locale used to convert multibyte characters into corresponding wide characters (codes) for a wide character constant (6.1.3.4).

No locale is supported.

(14)

Whether a "plain" char has the same range of values as signed char or unsigned char (6.2.1.1).

The char type has the same range of values, the same representation format, and the same behavior as those of the unsigned char type.

However, the char type can be switched to the signed char type by using the -signed_char option.

(15)

The representations and sets of values of the various types of integers (6.1.2.5).

Refer to "4.1.5 Internal Data Representation and Areas".

(16)

The result of converting an integer to a shorter signed integer, or the result of converting an unsigned integer to a signed integer of equal length, if the value cannot be represented (6.2.1.2).

If an integer is converted to an integer containing less bits, the resultant bit string is masked by the bit width of the less number of bits (with the upper bits deleted). If an unsigned integer is converted to a signed integer containing the same number of bits, the bit string is copied as is.

(17)

The results of bitwise operations on signed integers (6.3).

Arithmetic shift is performed for a shift operator. For other operators, a signed integer is calculated as an unsigned value (as a bit image).

(18)

The sign of the remainder on integer division (6.3.5).

If an operand has a negative value, the result of the "%" operator has the same sign as that of the first operand (dividend).

(19)

The result of a right shift of a negative-valued signed integral type (6.3.7).

In the case of "E1 >> E2", if E1 is a negative-valued signed type, arithmetic shift is performed.

(20)

The representations and sets of values of the various types of floating-point numbers (6.1.2.5).

Refer to "4.1.5 Internal Data Representation and Areas".

(21)

The direction of truncation when an integral number is converted to a floating-point number that cannot exactly represent the original value (6.2.1.3).

Rounded in the direction of the nearest value if any of these conditions is met:

-nofpu is specified.

-cpu=rx200 is specified.

-cpu=rx600 or -isa=rxv1 is specified, and the integer to be converted is unsigned.

In other cases, the result of conversion to the single-precision floating-point type is in accordance with the setting of the RM[0:1] bit in the FPSW.

[V3.01.00 or later] If -dpfpu is specified, the result of conversion to the double-precision floating-point type is in accordance with the setting of the DRM[0:1] bit in the DPSW.

(22)

The direction of truncation or rounding when a floating-point number is converted to a narrower floating-point number (6.2.1.4).

Rounded to the nearest representable direction.

(23)

The type of integer required to hold the maximum size of an array --- that is, the type of the sizeof operator, size_t (6.3.3.4, 7.1.1).

Unsigned long type

(24)

The result of casting a pointer to an integer or vice versa (6.3.4).

-

Integer-to-pointer conversion result
If the size of an integer type is larger than or equal to that of a pointer type, the lower-byte value of the integer type is used. If the size of the integer type is smaller than that of the pointer type, the sign-extended value is used.

-

Pointer-to-integer conversion result
If the size of a pointer type is larger than or equal to that of an integer type, the lower-byte value of the pointer type is used. If the size of a pointer type is smaller than that of an integer type, the zero-extended value is used.

(25)

The type of integer required to hold the difference between two pointers to members of the same array, ptrdiff_t (6.3.4, 7.1.1).

long type

(26)

The extent to which objects can actually be placed in registers by use of the register storage-class specifier (6.5.1).

Optimization is performed so that objects are accessed as fast as possible regardless of whether the register storage-class specifier is declared.

(27)

A member of a union object is accessed using a member of a different type (6.3.2.3).

The internal data representation is determined by the type that is to be accessed.

(28)

The padding and alignment of members of structures (6.5.2.1).

Refer to "4.1.5 Internal Data Representation and Areas".

(29)

Whether a "plain" int bit-field is treated as a signed int bit-field or as an unsigned int bit-field (6.5.2.1).

A bit field that was declared without specifying a sign is treated as an unsigned int type.

(30)

The order of allocation of bit-fields within an int (6.5.2.1).

The first declared bit-field is allocated from the lowest-order bit in the area with the size of the type when the bit-field was declared. This can be changed by the option.

Refer to "4.1.5 Internal Data Representation and Areas".

(31)

Whether a bit-field can straddle a storage-unit boundary (6.5.2.1).

A bit-field is allocated to the next area instead of straddling a storage-unit boundary.

Refer to "4.1.5 Internal Data Representation and Areas".

(32)

The integer type chosen to represent the values of an enumeration type (6.5.2.2).

Signed long type. If the -auto_enum option is specified, the minimum type that an enumerated type fits in is used.

(33)

What constitutes an access to an object that has volatile-qualified type (6.5.3).

The order and the number of accesses are as described in the C source. However, this does not apply to access to a type for which the microcomputer does not have a corresponding instruction. Such types might be accessed in a smaller size than a declaration type.

(34)

The maximum number of declarators that may modify an arithmetic, structure, or union type (6.5.4).

128

(35)

The maximum number of case values in a switch statement (6.6.4.2).

There are no limits.

(36)

Whether the value of a single-character character constant in a constant expression that controls conditional inclusion matches the value of the same character constant in the execution character set. Whether such a character constant may have a negative value (6.8.1).

The value for the character constant specified in conditional inclusion matches the character constant value that appears in other expressions.

Such a character constant does not have a negative value.

(37)

The method for locating includable source files (6.8.2).

Files are searched in the following order, and a file having the same name in the folder is identified as the header:

1. Folder specified by the path (if it is full-path). If full-path is not specified:

2. Folder having the source file

3. Folder specified by the -include option

4. Standard include file folder specified in the INC_RXA environment variable

(38)

The support for quoted names for includable source files (6.8.2).

Files are searched in the following order:

1. Folder specified by the path (if it is full-path). If full-path is not specified:

2. Folder having the source file

3. Folder specified by the -include option

4. Standard include file folder specified in the INC_RXA environment variable

(39)

The mapping of source file character sequences (6.8.2).

A preprocessing token string enclosed in < and > or in double quotation marks (") is mapped to the header name as is. If the preprocessing token string is converted to the <character string> or "character string" format by expanding a macro, the content is mapped to the header name.

(40)

The behavior on each recognized #pragma directive (6.8.6).

Refer to "4.2.3 #pragma Directive".

(41)

The definitions for __DATE__ and __TIME__ when respectively, the date and time of translation are not available (6.8.8).

A date and time are always obtained.

(42)

The null pointer constant to which the macro NULL expands (7.1.6).

0

(43)

The diagnostic printed by and the termination behavior of the assert function (7.2).

The display varies depending on the -lang option specified at compilation.

If -lang=c99 is not specified (for C(C89), C++, or EC++ language):

ASSERTION FAILED: Expression FILE file-name,LINE line-number

If -lang=c99 is specified (for C(C99) language):

ASSERTION FAILED: Expression FILE file-name,LINE line-number FUNCNAME function-name

The behavior when the assert function ends is not defined. As per low-level interface routine specifications.

(44)

The sets of characters tested for by the isalnum, isalpha, iscntrl, islower, isprint, and isupper functions (7.3.1).

Unsigned char type (0 to 255) and EOF (-1)

(45)

The values returned by the mathematics functions on domain errors (7.5.1).

A NaN is returned.

Refer to "(5) Floating-Point Number Specifications" in "4.1.5 Internal Data Representation and Areas".

(46)

Whether the mathematics functions set the integer expression errno to the value of the macro ERANGE on underflow range errors (7.5.1).

For details about the functions that set ERANGE in errno when an underflow occurs, refer to "10.5.6 Standard Library Error Messages". Other functions do not set ERANGE in errno.

(47)

Whether a domain error occurs or zero is returned when the fmod function has a second argument of zero (7.5.6.4).

A domain error occurs. For details, see the description about the fmod function group.

(48)

The set of signals for the signal function (7.7.1.1).

The signal function is not supported.

(49)

The semantics for each signal recognized by the signal function (7.7.1.1).

The signal function is not supported.

(50)

The default handling and the handling at program startup for each signal recognized by the signal function (7.7.1.1).

The signal function is not supported.

(51)

If the equivalent of signal(sig, SIG_DFL); is not executed prior to the call of a signal handler, the blocking of the signal that is performed (7.7.1.1).

The signal function is not supported.

(52)

Whether the default handling is reset if the SIGILL signal is received by a handler specified to the signal function (7.7.1.1).

The signal function is not supported.

(53)

Whether the last line of a text stream requires a terminating new-line character (7.9.2).

Not defined. As per low-level interface routine specifications.

(54)

Whether space characters that are written out to a text stream immediately before a new-line character appear when read in (7.9.2).

Not defined. As per low-level interface routine specifications.

(55)

The number of null characters that may be appended to data written to a binary stream (7.9.2).

Not defined. As per low-level interface routine specifications.

(56)

Whether the file position indicator of an append mode stream is initially positioned at the beginning or end of the file (7.9.3).

Not defined. As per low-level interface routine specifications.

(57)

Whether a write on a text stream causes the associated file to be truncated beyond that point (7.9.3).

Not defined. As per low-level interface routine specifications.

(58)

The characteristics of file buffering (7.9.3).

Not defined. As per low-level interface routine specifications.

(59)

Whether a zero-length file actually exists (7.9.3).

Not defined. As per low-level interface routine specifications.

(60)

The rules for composing valid file names (7.9.3).

Not defined. As per low-level interface routine specifications.

(61)

Whether the same file can be open multiple times (7.9.3).

Not defined. As per low-level interface routine specifications.

(62)

The effect of the remove function on an open file (7.9.4.1).

The remove function is not supported.

(63)

The effect if a file with the new name exists prior to a call to the rename function (7.9.4.2).

The rename function is not supported.

(64)

The output for %p conversion in the fprintf function (7.9.6.1).

Hexadecimal output

(65)

The input for %p conversion in the fscanf function (7.9.6.2).

Hexadecimal input

(66)

The interpretation of a - character that is neither the first nor the last character in the scan list for %[ conversion in the fscanf function (7.9.6.2).

The - character indicates the range between the previous character and the next character unless the previous character is a ^ character.

(67)

The value to which the macro errno is set by the fgetpos or ftell function on failure (7.9.9.1, 7.9.9.4).

The fgetpos function is not supported.

Not defined for the ftell function. As per low-level interface routine specifications.

(68)

The messages generated by the perror function (7.9.10.4).

Refer to "7.4 Library Function".

(69)

The behavior of the calloc, malloc, or realloc function if the size requested is zero (7.10.3).

NULL is returned.

(70)

The behavior of the abort function with regard to open and temporary files (7.10.4.1).

Not defined. As per low-level interface routine specifications.

(71)

The status returned by the exit function if the value of the argument is other than zero, EXIT_SUCCESS, or EXIT_FAILURE (7.10.4.3).

The exit function is not supported.

(72)

The set of environment names and the method for altering the environment list used by the getenv function (7.10.4.4).

The getenv function is not supported.

(73)

The contents and mode of execution of the string by the system function (7.10.4.5).

The system function is not supported.

(74)

The contents of the error message strings returned by the strerror function (7.11.6.2).

Refer to "10.5.6 Standard Library Error Messages".

(75)

The local time zone and Daylight Saving Time (7.12.1).

The time.h is not supported.

(76)

The era for the clock function (7.12.2.1).

The clock function is not supported.