summaryrefslogtreecommitdiff
path: root/gcc/ada/s-casi16.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-26 15:51:15 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-26 15:51:15 +0000
commit6114783d1660d92f97953374132b3c54a2b9595a (patch)
tree9d8bdbd3a06bb8d1d5eb364164ccb27fe91838b7 /gcc/ada/s-casi16.adb
parent0d62e683c4db064ac84a8fbb28c0684623b02243 (diff)
downloadgcc-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-casi16.adb')
-rw-r--r--gcc/ada/s-casi16.adb11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/ada/s-casi16.adb b/gcc/ada/s-casi16.adb
index 3980ce7d74f..846ec8dff00 100644
--- a/gcc/ada/s-casi16.adb
+++ b/gcc/ada/s-casi16.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- --
@@ -44,10 +44,7 @@ package body System.Compare_Array_Signed_16 is
for Half'Size use 16;
-- Used to process operands by half words
- type Uhalf is record
- H : Half;
- end record;
- pragma Pack (Uhalf);
+ type Uhalf is new Half;
for Uhalf'Alignment use 1;
-- Used to process operands when unaligned
@@ -110,8 +107,8 @@ package body System.Compare_Array_Signed_16 is
else
while Clen /= 0 loop
- if U (L).H /= U (R).H then
- if U (L).H > U (R).H then
+ if U (L).all /= U (R).all then
+ if U (L).all > U (R).all then
return +1;
else
return -1;