[gcc/devel/c++-coroutines] [Ada] AI12-0144 Make Discrete_Random more flexible

Iain D Sandoe iains@gcc.gnu.org
Fri Jun 5 19:36:02 GMT 2020


https://gcc.gnu.org/g:c3c80e3c3adde1f96d9f5070eccf1184a97ce2cd

commit c3c80e3c3adde1f96d9f5070eccf1184a97ce2cd
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Fri Jan 31 05:47:01 2020 -0500

    [Ada] AI12-0144 Make Discrete_Random more flexible
    
    2020-06-05  Arnaud Charlet  <charlet@adacore.com>
    
    gcc/ada/
    
            * libgnat/a-nudira.ads, libgnat/a-nudira.adb (Random): New
            function.

Diff:
---
 gcc/ada/libgnat/a-nudira.adb | 11 +++++++++++
 gcc/ada/libgnat/a-nudira.ads |  6 ++++++
 2 files changed, 17 insertions(+)

diff --git a/gcc/ada/libgnat/a-nudira.adb b/gcc/ada/libgnat/a-nudira.adb
index 77f81b44856..e18403cf140 100644
--- a/gcc/ada/libgnat/a-nudira.adb
+++ b/gcc/ada/libgnat/a-nudira.adb
@@ -56,6 +56,17 @@ is
       return Random (SRN.Generator (Gen));
    end Random;
 
+   function Random
+     (Gen   : Generator;
+      First : Result_Subtype;
+      Last  : Result_Subtype) return Result_Subtype
+   is
+      subtype Local_Subtype is Result_Subtype range First .. Last;
+      function Random is new SRN.Random_Discrete (Local_Subtype, First);
+   begin
+      return Random (SRN.Generator (Gen));
+   end Random;
+
    -----------
    -- Reset --
    -----------
diff --git a/gcc/ada/libgnat/a-nudira.ads b/gcc/ada/libgnat/a-nudira.ads
index 64342dd3b14..35b7dc62b50 100644
--- a/gcc/ada/libgnat/a-nudira.ads
+++ b/gcc/ada/libgnat/a-nudira.ads
@@ -51,6 +51,12 @@ is
 
    function Random (Gen : Generator) return Result_Subtype;
 
+   function Random
+     (Gen   : Generator;
+      First : Result_Subtype;
+      Last  : Result_Subtype) return Result_Subtype
+     with Post => Random'Result in First .. Last;
+
    procedure Reset (Gen : Generator; Initiator : Integer);
    procedure Reset (Gen : Generator);


More information about the Gcc-cvs mailing list