]> wimlib.net Git - wimlib/blobdiff - include/wimlib/types.h
Add sparse annotations for endianness checking
[wimlib] / include / wimlib / types.h
index 65c141896b131e6e84f7bfb24d643a5816c29784..0b53376771d1f6ddbd6c07a5e6096134edb8826d 100644 (file)
@@ -2,6 +2,7 @@
 #define _WIMLIB_TYPES_H
 
 #include "wimlib_tchar.h"
+#include "wimlib/compiler.h"
 
 #include <inttypes.h>
 #include <stdbool.h>
@@ -21,23 +22,23 @@ typedef int32_t s32;
 typedef int64_t s64;
 
 /* Unsigned little endian types of exact size */
-typedef uint8_t  le8;
-typedef uint16_t le16;
-typedef uint32_t le32;
-typedef uint64_t le64;
+typedef uint8_t  _bitwise_attr le8;
+typedef uint16_t _bitwise_attr le16;
+typedef uint32_t _bitwise_attr le32;
+typedef uint64_t _bitwise_attr le64;
 
 /* Signed little endian types of exact size (declare as unsigned to avoid sign
  * extension on big-endian architectures) */
-typedef uint8_t  sle8;
-typedef uint16_t sle16;
-typedef uint32_t sle32;
-typedef uint64_t sle64;
+typedef uint8_t  _bitwise_attr sle8;
+typedef uint16_t _bitwise_attr sle16;
+typedef uint32_t _bitwise_attr sle32;
+typedef uint64_t _bitwise_attr sle64;
 
 /* Unsigned big endian types of exact size */
-typedef uint8_t  be8;
-typedef uint16_t be16;
-typedef uint32_t be32;
-typedef uint64_t be64;
+typedef uint8_t  _bitwise_attr be8;
+typedef uint16_t _bitwise_attr be16;
+typedef uint32_t _bitwise_attr be32;
+typedef uint64_t _bitwise_attr be64;
 
 #endif