27 lines
770 B
Ada
27 lines
770 B
Ada
-- { dg-do compile }
|
|
-- { dg-options "-gnata -gnateS" }
|
|
|
|
procedure SCOs1 with SPARK_Mode => On is
|
|
|
|
LEN_IN_BITS : constant := 20;
|
|
|
|
M_SIZE_BYTES : constant := 2 ** LEN_IN_BITS;
|
|
ET_BYTES : constant := (M_SIZE_BYTES - 4);
|
|
|
|
type T_BYTES is new Integer range 0 .. ET_BYTES with Size => 32;
|
|
subtype TYPE5_SCALAR is T_BYTES
|
|
with Dynamic_Predicate => TYPE5_SCALAR mod 4 = 0;
|
|
|
|
type E_16_BYTES is new Integer;
|
|
subtype RD_BYTES is E_16_BYTES
|
|
with Dynamic_Predicate => RD_BYTES mod 4 = 0;
|
|
|
|
function "-" (left : TYPE5_SCALAR; right : RD_BYTES) return TYPE5_SCALAR
|
|
is ( left - TYPE5_SCALAR(right) )
|
|
with Pre => TYPE5_SCALAR(right) <= left and then
|
|
left - TYPE5_SCALAR(right) <= T_BYTES'Last, Inline_Always;
|
|
|
|
begin
|
|
null;
|
|
end SCOs1;
|