diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-26 15:51:15 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-05-26 15:51:15 +0000 |
commit | 6114783d1660d92f97953374132b3c54a2b9595a (patch) | |
tree | 9d8bdbd3a06bb8d1d5eb364164ccb27fe91838b7 /gcc/ada/s-casi64.adb | |
parent | 0d62e683c4db064ac84a8fbb28c0684623b02243 (diff) | |
download | gcc-6114783d1660d92f97953374132b3c54a2b9595a.tar.gz |
2008-05-26 Eric Botcazou <ebotcazou@adacore.com>
* s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
(Compare_Array_S16): Adjust for above change.
* s-casi32.adb (Uword): Likewise.
(Compare_Array_S32): Likewise.
* s-casi64.adb (Uword): Likewise.
(Compare_Array_S64): Likewise.
* s-caun16.adb (Uhalf): Likewise.
(Compare_Array_U16): Likewise.
* s-caun32.adb (Uword): Likewise.
(Compare_Array_U32): Likewise.
* s-caun64.adb (Uword): Likewise.
(Compare_Array_U64): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135942 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-casi64.adb')
-rw-r--r-- | gcc/ada/s-casi64.adb | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/ada/s-casi64.adb b/gcc/ada/s-casi64.adb index 0cbae743b1a..0bf9745d375 100644 --- a/gcc/ada/s-casi64.adb +++ b/gcc/ada/s-casi64.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2002-2007, Free Software Foundation, Inc. -- +-- Copyright (C) 2002-2008, 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- -- @@ -41,10 +41,7 @@ package body System.Compare_Array_Signed_64 is for Word'Size use 64; -- Used to process operands by words - type Uword is record - W : Word; - end record; - pragma Pack (Uword); + type Uword is new Word; for Uword'Alignment use 1; -- Used to process operands when unaligned @@ -93,8 +90,8 @@ package body System.Compare_Array_Signed_64 is else while Clen /= 0 loop - if U (L).W /= U (R).W then - if U (L).W > U (R).W then + if U (L).all /= U (R).all then + if U (L).all > U (R).all then return +1; else return -1; |