diff options
Diffstat (limited to 'lib/libc/alpha/gen/fpgetround.c')
-rw-r--r-- | lib/libc/alpha/gen/fpgetround.c | 11 |
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); } |