aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/s-rannum.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2010-06-23 08:21:26 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2010-06-23 08:21:26 +0200
commitbc20523f7b770a2ad34ab9fb6260d593e007e8ec (patch)
tree055f02e3e3f13e394ea9082c561ba3e01e199a63 /gcc/ada/s-rannum.adb
parenteeed09ef663f6c6f0c4f41f64d6029e6474263b0 (diff)
downloadgcc-bc20523f7b770a2ad34ab9fb6260d593e007e8ec.zip
gcc-bc20523f7b770a2ad34ab9fb6260d593e007e8ec.tar.gz
gcc-bc20523f7b770a2ad34ab9fb6260d593e007e8ec.tar.bz2
[multiple changes]
2010-06-23 Ed Schonberg <schonberg@adacore.com> * exp_ch4.adb: Use predefined unsigned type in all cases. 2010-06-23 Bob Duff <duff@adacore.com> * s-rannum.adb (Reset): Avoid overflow in calculation of Initiator. * g-pehage.ads: Minor comment fixes. * g-pehage.adb: Minor: Add some additional debugging printouts under Verbose flag. 2010-06-23 Robert Dewar <dewar@adacore.com> * binde.adb (Better_Choice): Always prefer Pure/Preelab. (Worse_Choice): Always prefer Pure/Preelab. From-SVN: r161246
Diffstat (limited to 'gcc/ada/s-rannum.adb')
-rw-r--r--gcc/ada/s-rannum.adb7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/s-rannum.adb b/gcc/ada/s-rannum.adb
index 5065910..d85dd2e 100644
--- a/gcc/ada/s-rannum.adb
+++ b/gcc/ada/s-rannum.adb
@@ -484,7 +484,12 @@ package body System.Random_Numbers is
-----------
procedure Reset (Gen : Generator) is
- X : constant Unsigned_32 := Unsigned_32 ((Calendar.Clock - Y2K) * 64.0);
+ Clock : constant Time := Calendar.Clock;
+ Duration_Since_Y2K : constant Duration := Clock - Y2K;
+
+ X : constant Unsigned_32 :=
+ Unsigned_32'Mod (Unsigned_64 (Duration_Since_Y2K) * 64);
+
begin
Init (Gen, X);
end Reset;