diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1998-08-11 22:04:30 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1998-08-11 22:04:30 +0000 |
commit | 3c3348efec2aeabf0569ce03e119a352b69faa90 (patch) | |
tree | 27f399a0f3a048c5ef6d2c0bb9fdbb91530d7dcd /lib/libc | |
parent | 683cc387ceaf77d3d06fed8873317b411cc4d2e4 (diff) |
Temporary fix for a GCC aliasing bug/misfeature that hits here
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/stdlib/strtod.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libc/stdlib/strtod.c b/lib/libc/stdlib/strtod.c index a4ba993095d..4b38110dcb5 100644 --- a/lib/libc/stdlib/strtod.c +++ b/lib/libc/stdlib/strtod.c @@ -90,7 +90,7 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static char *rcsid = "$OpenBSD: strtod.c,v 1.9 1997/03/25 17:07:30 rahnds Exp $"; +static char *rcsid = "$OpenBSD: strtod.c,v 1.10 1998/08/11 22:04:29 niklas Exp $"; #endif /* LIBC_SCCS and not lint */ #if defined(__m68k__) || defined(__sparc__) || defined(__i386__) || \ @@ -2004,6 +2004,10 @@ __dtoa if (i = (int)(word0(d) >> Exp_shift1 & (Exp_mask>>Exp_shift1))) { #endif d2 = d; +#ifdef __GNUC__ + /* Do not move instructions depending on d2 over this line. */ + __asm__ __volatile__ ("" : : "X" (d2) : "memory"); +#endif word0(d2) &= Frac_mask1; word0(d2) |= Exp_11; #ifdef IBM |