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" procedure Test is type T is delta 0.1 digits 2; X : constant := 0.01; Y : constant T := X; begin null; end Test;
Confirmed with gcc version 4.2.0 20060922 (experimental), GCC accepts-invalid here. Note: Y : constant T := 0.01; is correctly rejected with: test.adb:5:22: value has extraneous low order digits
The error is still missing.