gcc Ada does not always check whether the value of a static expression of a decimal fixed point type is a multiple of the small. Aonix ObjectAda rejects the following program with the error message, "test.adb: Error: line 5 col 22 LRM:4.9(36), The value of a static expression of a decimal fixed point type must be a multiple of the small, Continuing"
type T is delta 0.1 digits 2;
X : constant := 0.01;
Y : constant T := X;
Confirmed with gcc version 4.2.0 20060922 (experimental), GCC accepts-invalid here.
Y : constant T := 0.01;
is correctly rejected with:
test.adb:5:22: value has extraneous low order digits
The error is still missing.