Use struct not union
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
diff --git a/library/alignment.h b/library/alignment.h
index 14a86cf..db83595 100644
--- a/library/alignment.h
+++ b/library/alignment.h
@@ -76,10 +76,10 @@
* Tested with several versions of GCC from 4.5.0 up to 13.2.0
* We don't enable for older than 4.5.0 as this has not been tested.
*/
- #define UINT_UNALIGNED_UNION
-typedef union { uint16_t x; } __attribute__((packed)) mbedtls_uint16_unaligned_t;
-typedef union { uint32_t x; } __attribute__((packed)) mbedtls_uint32_unaligned_t;
-typedef union { uint64_t x; } __attribute__((packed)) mbedtls_uint64_unaligned_t;
+ #define UINT_UNALIGNED_STRUCT
+typedef struct { uint16_t x; } __attribute__((packed)) mbedtls_uint16_unaligned_t;
+typedef struct { uint32_t x; } __attribute__((packed)) mbedtls_uint32_unaligned_t;
+typedef struct { uint64_t x; } __attribute__((packed)) mbedtls_uint64_unaligned_t;
#endif
/*
@@ -106,7 +106,7 @@
#if defined(UINT_UNALIGNED)
mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
r = *p16;
-#elif defined(UINT_UNALIGNED_UNION)
+#elif defined(UINT_UNALIGNED_STRUCT)
mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
r = p16->x;
#else
@@ -132,7 +132,7 @@
#if defined(UINT_UNALIGNED)
mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
*p16 = x;
-#elif defined(UINT_UNALIGNED_UNION)
+#elif defined(UINT_UNALIGNED_STRUCT)
mbedtls_uint16_unaligned_t *p16 = (mbedtls_uint16_unaligned_t *) p;
p16->x = x;
#else
@@ -158,7 +158,7 @@
#if defined(UINT_UNALIGNED)
mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
r = *p32;
-#elif defined(UINT_UNALIGNED_UNION)
+#elif defined(UINT_UNALIGNED_STRUCT)
mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
r = p32->x;
#else
@@ -184,7 +184,7 @@
#if defined(UINT_UNALIGNED)
mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
*p32 = x;
-#elif defined(UINT_UNALIGNED_UNION)
+#elif defined(UINT_UNALIGNED_STRUCT)
mbedtls_uint32_unaligned_t *p32 = (mbedtls_uint32_unaligned_t *) p;
p32->x = x;
#else
@@ -210,7 +210,7 @@
#if defined(UINT_UNALIGNED)
mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
r = *p64;
-#elif defined(UINT_UNALIGNED_UNION)
+#elif defined(UINT_UNALIGNED_STRUCT)
mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
r = p64->x;
#else
@@ -236,7 +236,7 @@
#if defined(UINT_UNALIGNED)
mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
*p64 = x;
-#elif defined(UINT_UNALIGNED_UNION)
+#elif defined(UINT_UNALIGNED_STRUCT)
mbedtls_uint64_unaligned_t *p64 = (mbedtls_uint64_unaligned_t *) p;
p64->x = x;
#else