diff options
| author | David Schultz <das@FreeBSD.org> | 2004-02-16 10:02:40 +0000 |
|---|---|---|
| committer | David Schultz <das@FreeBSD.org> | 2004-02-16 10:02:40 +0000 |
| commit | 36e22bed27863665234a9409ffc9dc50b79bf1a7 (patch) | |
| tree | 28236bec651e918042d6ae062eb49a4f35ac208d /lib/libc/alpha | |
| parent | 7ccbdc0d2298b12098d99307096300ff8f87ffc7 (diff) | |
Notes
Diffstat (limited to 'lib/libc/alpha')
| -rw-r--r-- | lib/libc/alpha/gen/isinf.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/libc/alpha/gen/isinf.c b/lib/libc/alpha/gen/isinf.c index 0017ea58f56c2..df6ac963b560c 100644 --- a/lib/libc/alpha/gen/isinf.c +++ b/lib/libc/alpha/gen/isinf.c @@ -43,18 +43,26 @@ int isnan(d) double d; { - struct ieee_double *p = (struct ieee_double *)&d; + union { + double v; + struct ieee_double s; + } u; - return (p->dbl_exp == DBL_EXP_INFNAN && - (p->dbl_frach || p->dbl_fracl)); + u.v = d; + return (u.s.dbl_exp == DBL_EXP_INFNAN && + (u.s.dbl_frach || u.s.dbl_fracl)); } int isinf(d) double d; { - struct ieee_double *p = (struct ieee_double *)&d; + union { + double v; + struct ieee_double s; + } u; - return (p->dbl_exp == DBL_EXP_INFNAN && - !p->dbl_frach && !p->dbl_fracl); + u.v = d; + return (u.s.dbl_exp == DBL_EXP_INFNAN && + !u.s.dbl_frach && !u.s.dbl_fracl); } |
