aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2005-11-15 15:04:45 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2005-11-15 15:04:45 +0100
commit49c041e306a21fdf9d38d8d2b432d3573450693c (patch)
tree279a2f0ac1adbda90386c290562b5c9db514bf19 /gcc/ada
parent5e804c9fcd95af1c25f80cb166cfa2556843cdad (diff)
downloadgcc-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.adb10
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";