summaryrefslogtreecommitdiff
path: root/ext/fputils
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fputils')
-rw-r--r--ext/fputils/fpbits.h1
-rw-r--r--ext/fputils/include/fputils/fptypes.h6
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;
/** @} */