aboutsummaryrefslogtreecommitdiffstats
path: root/test/regression/alias.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/regression/alias.c')
-rw-r--r--test/regression/alias.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/test/regression/alias.c b/test/regression/alias.c
index 9887ae2b..925979cb 100644
--- a/test/regression/alias.c
+++ b/test/regression/alias.c
@@ -69,14 +69,14 @@ int get4(void)
return x;
}
-/* Byte-swapping a pointer */
+/* Byte-swapping a pointer. For 32/64 bit compatibility, we just swap
+ the two low bytes, but that's in the spirit. */
inline uintptr_t bswap(uintptr_t x)
{
- return (x >> 24)
- | (((x >> 16) & 0xFF) << 8)
- | (((x >> 8) & 0xFF) << 16)
- | ((x & 0xFF) << 24);
+ return (x & ~((uintptr_t) 0xFFFF))
+ | ((x >> 8) & 0xFF)
+ | ((x << 8) & 0xFF00);
}
void NOINLINE set5(uintptr_t x)