diff options
-rw-r--r-- | ext/fputils/fpbits.h | 1 | ||||
-rw-r--r-- | ext/fputils/include/fputils/fptypes.h | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/ext/fputils/fpbits.h b/ext/fputils/fpbits.h index f85a3b2f0..207531556 100644 --- a/ext/fputils/fpbits.h +++ b/ext/fputils/fpbits.h @@ -84,6 +84,7 @@ build_fp64(int sign, uint64_t frac, int exp) #define BUILD_FP80(sign, frac, exp) \ { \ + .repr.pad = { 0 }, \ .repr.se = BUILD_FP80_SE(sign, exp), \ .repr.fi = BUILD_FP80_FI(frac, exp) \ } diff --git a/ext/fputils/include/fputils/fptypes.h b/ext/fputils/include/fputils/fptypes.h index 714ddd439..2ccf6df26 100644 --- a/ext/fputils/include/fputils/fptypes.h +++ b/ext/fputils/include/fputils/fptypes.h @@ -69,12 +69,16 @@ typedef union { uint64_t fi; /** Raw representation of sign bit and exponent */ uint16_t se; + /** Add explicit padding to ensure this data structure + * is properly aligned. + */ + uint16_t pad[3]; } repr; /** * Represented as a char array, mainly intended for debug dumping * and serialization. */ - char bits[10]; + char bits[16]; } fp80_t; /** @} */ |