summaryrefslogtreecommitdiffstats
path: root/lib/libc/alpha/gen/fpgetround.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/alpha/gen/fpgetround.c')
-rw-r--r--lib/libc/alpha/gen/fpgetround.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/libc/alpha/gen/fpgetround.c b/lib/libc/alpha/gen/fpgetround.c
index 70de648..1fd96b2 100644
--- a/lib/libc/alpha/gen/fpgetround.c
+++ b/lib/libc/alpha/gen/fpgetround.c
@@ -41,11 +41,12 @@ __FBSDID("$FreeBSD$");
fp_rnd_t
fpgetround()
{
- double fpcrval;
- u_int64_t old;
+ union {
+ double fpcrval;
+ u_int64_t intval;
+ } u;
- GET_FPCR(fpcrval);
- old = *(u_int64_t *)&fpcrval;
+ GET_FPCR(u.fpcrval);
- return ((old & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT);
+ return ((u.intval & FPCR_DYN_MASK) >> FPCR_DYN_SHIFT);
}
OpenPOWER on IntegriCloud