diff --git a/gcc/ada/libgnat/g-rannum.adb b/gcc/ada/libgnat/g-rannum.adb index b7ef7d19d078..3895cdd0548b 100644 --- a/gcc/ada/libgnat/g-rannum.adb +++ b/gcc/ada/libgnat/g-rannum.adb @@ -58,6 +58,8 @@ is new Ada.Unchecked_Conversion (Unsigned_32, Integer_32); function To_Signed is new Ada.Unchecked_Conversion (Unsigned_64, Integer_64); + function To_Signed is + new Ada.Unchecked_Conversion (Unsigned_128, Integer_128); ------------------ -- Insert_Image -- @@ -147,9 +149,9 @@ is return Random (Gen.Rep); end Random; - function Random (Gen : Generator) return Integer_64 is + function Random (Gen : Generator) return Interfaces.Unsigned_128 is begin - return To_Signed (Unsigned_64'(Random (Gen))); + return Random (Gen.Rep); end Random; function Random (Gen : Generator) return Integer_32 is @@ -157,6 +159,16 @@ is return To_Signed (Unsigned_32'(Random (Gen))); end Random; + function Random (Gen : Generator) return Integer_64 is + begin + return To_Signed (Unsigned_64'(Random (Gen))); + end Random; + + function Random (Gen : Generator) return Integer_128 is + begin + return To_Signed (Unsigned_128'(Random (Gen))); + end Random; + function Random (Gen : Generator) return Long_Integer is function Random_Long_Integer is new Random_Discrete (Long_Integer); begin diff --git a/gcc/ada/libgnat/g-rannum.ads b/gcc/ada/libgnat/g-rannum.ads index 5b633ff913ba..f795ae09aec6 100644 --- a/gcc/ada/libgnat/g-rannum.ads +++ b/gcc/ada/libgnat/g-rannum.ads @@ -69,6 +69,8 @@ is function Random (Gen : Generator) return Interfaces.Unsigned_32; function Random (Gen : Generator) return Interfaces.Integer_64; function Random (Gen : Generator) return Interfaces.Unsigned_64; + function Random (Gen : Generator) return Interfaces.Integer_128; + function Random (Gen : Generator) return Interfaces.Unsigned_128; function Random (Gen : Generator) return Integer; function Random (Gen : Generator) return Long_Integer; -- Return pseudo-random numbers uniformly distributed on T'First .. T'Last