https://gcc.gnu.org/g:ffecc9a97247b73de657a1fc0c81cf824bfd72c6

commit r15-8610-gffecc9a97247b73de657a1fc0c81cf824bfd72c6
Author: Arthur Cohen <arthur.co...@embecosm.com>
Date:   Thu Jan 18 17:24:01 2024 +0100

    gccrs: testsuite: Fix missing handling of little endian.
    
    Some failures occur in the testsuite because we
    did not account for the little-endian case.
    
    gcc/testsuite/ChangeLog:
    
            * rust/compile/issue-1446.rs: Add swap_bytes function.
            * rust/compile/iterators1.rs: Remove unused {to, from}_le functions.

Diff:
---
 gcc/testsuite/rust/compile/issue-1446.rs | 10 +++++++++-
 gcc/testsuite/rust/compile/iterators1.rs | 18 ------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/gcc/testsuite/rust/compile/issue-1446.rs 
b/gcc/testsuite/rust/compile/issue-1446.rs
index 8bfa42b9dace..969ad380ee69 100644
--- a/gcc/testsuite/rust/compile/issue-1446.rs
+++ b/gcc/testsuite/rust/compile/issue-1446.rs
@@ -1,3 +1,11 @@
+// fake function
+pub fn swap_bytes(this: u32) -> u32 {
+    (((this) & 0xff000000) >> 24)
+        | (((this) & 0x00ff0000) >> 8)
+        | (((this) & 0x0000ff00) << 8)
+        | (((this) & 0x000000ff) << 24)
+}
+
 pub fn to_le(this: u32) -> u32 {
     #[cfg(target_endian = "little")]
     {
@@ -5,6 +13,6 @@ pub fn to_le(this: u32) -> u32 {
     }
     #[cfg(not(target_endian = "little"))]
     {
-        this.swap_bytes()
+        swap_bytes(this)
     }
 }
diff --git a/gcc/testsuite/rust/compile/iterators1.rs 
b/gcc/testsuite/rust/compile/iterators1.rs
index 35fea5a04938..1141758b14a7 100644
--- a/gcc/testsuite/rust/compile/iterators1.rs
+++ b/gcc/testsuite/rust/compile/iterators1.rs
@@ -232,24 +232,6 @@ macro_rules! impl_uint {
                     }
                 }
 
-                pub fn to_le(self) -> Self {
-                    #[cfg(target_endian = "little")]
-                    {
-                        self
-                    }
-                }
-
-                pub const fn from_le_bytes(bytes: [u8; 
mem::size_of::<Self>()]) -> Self {
-                    Self::from_le(Self::from_ne_bytes(bytes))
-                }
-
-                pub const fn from_le(x: Self) -> Self {
-                    #[cfg(target_endian = "little")]
-                    {
-                        x
-                    }
-                }
-
                 pub const fn from_ne_bytes(bytes: [u8; 
mem::size_of::<Self>()]) -> Self {
                     unsafe { mem::transmute(bytes) }
                 }

Reply via email to