diff options
author | Robert Dewar <dewar@adacore.com> | 2005-11-15 15:04:45 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-11-15 15:04:45 +0100 |
commit | 49c041e306a21fdf9d38d8d2b432d3573450693c (patch) | |
tree | 279a2f0ac1adbda90386c290562b5c9db514bf19 /gcc/ada | |
parent | 5e804c9fcd95af1c25f80cb166cfa2556843cdad (diff) | |
download | gcc-49c041e306a21fdf9d38d8d2b432d3573450693c.zip gcc-49c041e306a21fdf9d38d8d2b432d3573450693c.tar.gz gcc-49c041e306a21fdf9d38d8d2b432d3573450693c.tar.bz2 |
s-stoele.adb: Fix code for Address mod Storage_Offset for negative offset values
2005-11-14 Robert Dewar <dewar@adacore.com>
* s-stoele.adb: Fix code for Address mod Storage_Offset for negative
offset values
From-SVN: r107010
Diffstat (limited to 'gcc/ada')
-rw-r--r-- | gcc/ada/s-stoele.adb | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ada/s-stoele.adb b/gcc/ada/s-stoele.adb index 59eaf0b..4d4f959 100644 --- a/gcc/ada/s-stoele.adb +++ b/gcc/ada/s-stoele.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2004 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -61,15 +61,17 @@ package body System.Storage_Elements is return To_Offset (To_Address (To_Integer (Left) - To_Integer (Right))); end "-"; - function "mod" (Left : Address; Right : Storage_Offset) - return Storage_Offset is + function "mod" + (Left : Address; + Right : Storage_Offset) return Storage_Offset + is begin if Right >= 0 then return Storage_Offset (To_Integer (Left) mod Integer_Address (Right)); else return -Storage_Offset - (To_Integer (Left) mod Integer_Address (-Right)); + ((-To_Integer (Left)) mod Integer_Address (-Right)); end if; end "mod"; |