summary refs log tree commit diff
path: root/string/endian.h
diff options
context:
space:
mode:
Diffstat (limited to 'string/endian.h')
-rw-r--r--string/endian.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/string/endian.h b/string/endian.h
index 18e67085b4..dcc9a65df7 100644
--- a/string/endian.h
+++ b/string/endian.h
@@ -58,37 +58,38 @@
 #if defined __USE_MISC && !defined __ASSEMBLER__
 /* Conversion interfaces.  */
 # include <bits/byteswap.h>
+# include <bits/uintn-identity.h>
 
 # if __BYTE_ORDER == __LITTLE_ENDIAN
 #  define htobe16(x) __bswap_16 (x)
-#  define htole16(x) (x)
+#  define htole16(x) __uint16_identity (x)
 #  define be16toh(x) __bswap_16 (x)
-#  define le16toh(x) (x)
+#  define le16toh(x) __uint16_identity (x)
 
 #  define htobe32(x) __bswap_32 (x)
-#  define htole32(x) (x)
+#  define htole32(x) __uint32_identity (x)
 #  define be32toh(x) __bswap_32 (x)
-#  define le32toh(x) (x)
+#  define le32toh(x) __uint32_identity (x)
 
 #  define htobe64(x) __bswap_64 (x)
-#  define htole64(x) (x)
+#  define htole64(x) __uint64_identity (x)
 #  define be64toh(x) __bswap_64 (x)
-#  define le64toh(x) (x)
+#  define le64toh(x) __uint64_identity (x)
 
 # else
-#  define htobe16(x) (x)
+#  define htobe16(x) __uint16_identity (x)
 #  define htole16(x) __bswap_16 (x)
-#  define be16toh(x) (x)
+#  define be16toh(x) __uint16_identity (x)
 #  define le16toh(x) __bswap_16 (x)
 
-#  define htobe32(x) (x)
+#  define htobe32(x) __uint32_identity (x)
 #  define htole32(x) __bswap_32 (x)
-#  define be32toh(x) (x)
+#  define be32toh(x) __uint32_identity (x)
 #  define le32toh(x) __bswap_32 (x)
 
-#  define htobe64(x) (x)
+#  define htobe64(x) __uint64_identity (x)
 #  define htole64(x) __bswap_64 (x)
-#  define be64toh(x) (x)
+#  define be64toh(x) __uint64_identity (x)
 #  define le64toh(x) __bswap_64 (x)
 # endif
 #endif