mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-28 16:00:22 +02:00
avoid type-punning errors in guile_ieee_init on OSF
* libguile/numbers.c (guile_ieee_init): Avoid type-punning errors on OSF. Thanks to Jay Krell for the report.
This commit is contained in:
parent
899a17a783
commit
2462fad237
1 changed files with 17 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
/* Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* Portions Copyright 1990, 1991, 1992, 1993 by AT&T Bell Laboratories
|
* Portions Copyright 1990, 1991, 1992, 1993 by AT&T Bell Laboratories
|
||||||
* and Bellcore. See scm_divide.
|
* and Bellcore. See scm_divide.
|
||||||
|
@ -620,7 +620,14 @@ guile_ieee_init (void)
|
||||||
#elif HAVE_DINFINITY
|
#elif HAVE_DINFINITY
|
||||||
/* OSF */
|
/* OSF */
|
||||||
extern unsigned int DINFINITY[2];
|
extern unsigned int DINFINITY[2];
|
||||||
guile_Inf = (*((double *) (DINFINITY)));
|
union
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
int i[2];
|
||||||
|
} alias;
|
||||||
|
alias.i[0] = DINFINITY[0];
|
||||||
|
alias.i[1] = DINFINITY[1];
|
||||||
|
guile_Inf = alias.d;
|
||||||
#else
|
#else
|
||||||
double tmp = 1e+10;
|
double tmp = 1e+10;
|
||||||
guile_Inf = tmp;
|
guile_Inf = tmp;
|
||||||
|
@ -651,7 +658,14 @@ guile_ieee_init (void)
|
||||||
{
|
{
|
||||||
/* OSF */
|
/* OSF */
|
||||||
extern unsigned int DQNAN[2];
|
extern unsigned int DQNAN[2];
|
||||||
guile_NaN = (*((double *)(DQNAN)));
|
union
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
int i[2];
|
||||||
|
} alias;
|
||||||
|
alias.i[0] = DQNAN[0];
|
||||||
|
alias.i[1] = DQNAN[1];
|
||||||
|
guile_NaN = alias.d;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
guile_NaN = guile_Inf / guile_Inf;
|
guile_NaN = guile_Inf / guile_Inf;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue