summaryrefslogtreecommitdiff
path: root/libc/ports/sysdeps/ia64/fpu/printf_fphex.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc/ports/sysdeps/ia64/fpu/printf_fphex.c')
-rw-r--r--libc/ports/sysdeps/ia64/fpu/printf_fphex.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/libc/ports/sysdeps/ia64/fpu/printf_fphex.c b/libc/ports/sysdeps/ia64/fpu/printf_fphex.c
index ca021427e..0698cdad1 100644
--- a/libc/ports/sysdeps/ia64/fpu/printf_fphex.c
+++ b/libc/ports/sysdeps/ia64/fpu/printf_fphex.c
@@ -25,9 +25,11 @@ do { \
/* The "strange" 80 bit format on ia64 has an explicit \
leading digit in the 64 bit mantissa. */ \
unsigned long long int num; \
+ union ieee854_long_double u; \
+ u.d = fpnum.ldbl; \
\
- num = (((unsigned long long int) fpnum.ldbl.ieee.mantissa0) << 32 \
- | fpnum.ldbl.ieee.mantissa1); \
+ num = (((unsigned long long int) u.ieee.mantissa0) << 32 \
+ | u.ieee.mantissa1); \
\
zero_mantissa = num == 0; \
\
@@ -49,8 +51,8 @@ do { \
\
/* We have 3 bits from the mantissa in the leading nibble. \
Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'. */ \
- exponent = fpnum.ldbl.ieee.exponent; \
- \
+ exponent = u.ieee.exponent; \
+ \
if (exponent == 0) \
{ \
if (zero_mantissa) \