From 9bd54259216d02cd5594e74814882fdf68da84ea Mon Sep 17 00:00:00 2001 From: charlet Date: Tue, 15 Nov 2005 14:04:45 +0000 Subject: 2005-11-14 Robert Dewar * s-stoele.adb: Fix code for Address mod Storage_Offset for negative offset values git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107010 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/s-stoele.adb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gcc/ada/s-stoele.adb b/gcc/ada/s-stoele.adb index 59eaf0b8215..4d4f9594e76 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"; -- cgit v1.2.3