From e722ad01d0c59368eacc88c9a380a524313b19eb Mon Sep 17 00:00:00 2001 From: Kito Cheng Date: Sun, 9 Apr 2017 00:06:06 +0800 Subject: [PATCH] Add __packed to struct ldieee - We don't want any padding in struct ldieee, otherwise the offset might wrong in most compiler. --- newlib/libc/stdio/vfieeefp.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/newlib/libc/stdio/vfieeefp.h b/newlib/libc/stdio/vfieeefp.h index 7169119..e85cabb 100644 --- a/newlib/libc/stdio/vfieeefp.h +++ b/newlib/libc/stdio/vfieeefp.h @@ -35,6 +35,7 @@ #include #include #include +#include #ifdef __IEEE_LITTLE_ENDIAN #define IEEE_8087 @@ -71,7 +72,7 @@ struct ldieee unsigned manh:23; unsigned exp:8; unsigned sign:1; -}; +} __packed; #elif LDBL_MANT_DIG == 53 struct ldieee { @@ -79,7 +80,7 @@ struct ldieee unsigned manh:32; unsigned exp:11; unsigned sign:1; -}; +} __packed; #elif LDBL_MANT_DIG == 64 struct ldieee { @@ -87,7 +88,7 @@ struct ldieee unsigned manh:32; unsigned exp:15; unsigned sign:1; -}; +} __packed; #elif LDBL_MANT_DIG > 64 struct ldieee { @@ -97,7 +98,7 @@ struct ldieee unsigned manh:32; unsigned exp:15; unsigned sign:1; -}; +} __packed; #endif /* LDBL_MANT_DIG */ #else /* !IEEE_8087 */ #if LDBL_MANT_DIG == 24 @@ -106,7 +107,7 @@ struct ldieee unsigned sign:1; unsigned exp:8; unsigned manh:23; -}; +} __packed; #elif LDBL_MANT_DIG == 53 struct ldieee { @@ -114,7 +115,7 @@ struct ldieee unsigned exp:11; unsigned manh:32; unsigned manl:20; -}; +} __packed; #elif LDBL_MANT_DIG == 64 struct ldieee { @@ -122,7 +123,7 @@ struct ldieee unsigned exp:15; unsigned manh:32; unsigned manl:32; -}; +} __packed; #elif LDBL_MANT_DIG > 64 struct ldieee { @@ -132,7 +133,7 @@ struct ldieee unsigned manl:32; unsigned manl2:32; unsigned manl3:16; -}; +} __packed; #endif /* LDBL_MANT_DIG */ #endif /* !IEEE_8087 */ #endif /* _WANT_IO_LONG_DOUBLE */ -- 2.7.4