* valarith.c (value_equal, value_less): Avoid compiler bug on
systems where `long double' values are returned in static storage.
This commit is contained in:
parent
e764ed5ba9
commit
d067a990c8
2 changed files with 19 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2005-08-21 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* valarith.c (value_equal, value_less): Avoid compiler bug on
|
||||
systems where `long double' values are returned in static storage.
|
||||
|
||||
2005-08-18 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* stack.c: Reformat. Improve comments. Include "valprint.h".
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/* Perform arithmetic and other operations on values, for GDB.
|
||||
|
||||
Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
|
@ -1248,7 +1248,12 @@ value_equal (struct value *arg1, struct value *arg2)
|
|||
BINOP_EQUAL)));
|
||||
else if ((code1 == TYPE_CODE_FLT || is_int1)
|
||||
&& (code2 == TYPE_CODE_FLT || is_int2))
|
||||
return value_as_double (arg1) == value_as_double (arg2);
|
||||
{
|
||||
/* NOTE: kettenis/20050816: Avoid compiler bug on systems where
|
||||
`long double' values are returned in static storage (m68k). */
|
||||
DOUBLEST d = value_as_double (arg1);
|
||||
return d == value_as_double (arg2);
|
||||
}
|
||||
|
||||
/* FIXME: Need to promote to either CORE_ADDR or LONGEST, whichever
|
||||
is bigger. */
|
||||
|
@ -1307,7 +1312,12 @@ value_less (struct value *arg1, struct value *arg2)
|
|||
BINOP_LESS)));
|
||||
else if ((code1 == TYPE_CODE_FLT || is_int1)
|
||||
&& (code2 == TYPE_CODE_FLT || is_int2))
|
||||
return value_as_double (arg1) < value_as_double (arg2);
|
||||
{
|
||||
/* NOTE: kettenis/20050816: Avoid compiler bug on systems where
|
||||
`long double' values are returned in static storage (m68k). */
|
||||
DOUBLEST d = value_as_double (arg1);
|
||||
return d < value_as_double (arg2);
|
||||
}
|
||||
else if (code1 == TYPE_CODE_PTR && code2 == TYPE_CODE_PTR)
|
||||
return value_as_address (arg1) < value_as_address (arg2);
|
||||
|
||||
|
|
Loading…
Reference in a new issue