27 lines
777 B
Ada
27 lines
777 B
Ada
-- { dg-do compile }
|
|
-- { dg-options "-gnata" }
|
|
|
|
procedure Modular5 is
|
|
type U64 is mod 2 ** 64;
|
|
Maybe : Boolean := 2 ** 10 < U64'Succ (U64'last - 1);
|
|
For_Sure : Boolean := U64'(18446744073709551615) > 2;
|
|
Ditto : Boolean := 18446744073709551615 > 2;
|
|
|
|
generic
|
|
type TG is mod <>;
|
|
package PG is
|
|
X : TG;
|
|
pragma Assert (for all K in 1 .. 2 => 2 ** K <= TG'Last);
|
|
pragma Assert (for all K in 1 .. 2 => 2 ** K <= TG'Last - 1);
|
|
|
|
Maybe : Boolean := 2 ** 10 < TG'Succ (TG'last - 1);
|
|
For_Sure : Boolean := TG'(18446744073709551615) > 2;
|
|
end PG;
|
|
|
|
package IG is new PG (U64);
|
|
|
|
begin
|
|
pragma Assert (for all K in 1 .. 2 => 2 ** K <= U64'Last);
|
|
pragma Assert (for all K in 1 .. 2 => 2 ** K <= U64'Last - 1);
|
|
end Modular5;
|