aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2005-08-17 18:03:42 +0000
committerDJ Delorie <dj@redhat.com>2005-08-17 18:03:42 +0000
commit3b6940c0d1e5be395d19c787d33e65f6edb545b2 (patch)
tree5020be65693b7851946a6686d3c2fd9d788cad79
parente1e3d0f5e6f2d0b5f868e213514f0613e2818290 (diff)
downloadgdb-3b6940c0d1e5be395d19c787d33e65f6edb545b2.zip
gdb-3b6940c0d1e5be395d19c787d33e65f6edb545b2.tar.gz
gdb-3b6940c0d1e5be395d19c787d33e65f6edb545b2.tar.bz2
merge from gcc
-rw-r--r--include/ChangeLog11
-rw-r--r--include/floatformat.h11
-rw-r--r--libiberty/ChangeLog13
-rw-r--r--libiberty/floatformat.c34
4 files changed, 47 insertions, 22 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 3dd0c4d..570af43 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,14 @@
+2005-08-17 Mark Kettenis <kettenis@gnu.org>
+
+ * floatformat.h (struct floatformat): Change type of large
+ argument for is_valid member to `const void *'.
+ (floatformat_to_double): Change type of second argument to `const
+ void *'.
+ (floatformat_from_double): Change type of last argument to `void
+ *'.
+ (floatformat_is_valid): Change type of last argument to `const
+ void *'.
+
2005-07-14 Jim Blandy <jimb@redhat.com>
* dis-asm.h (print_insn_m32c): New declaration.
diff --git a/include/floatformat.h b/include/floatformat.h
index 0cbd143..a244874 100644
--- a/include/floatformat.h
+++ b/include/floatformat.h
@@ -1,5 +1,6 @@
/* IEEE floating point support declarations, for GDB, the GNU Debugger.
- Copyright 1991, 1994, 1995, 1997, 2000, 2003 Free Software Foundation, Inc.
+ Copyright 1991, 1994, 1995, 1997, 2000, 2003, 2005
+ Free Software Foundation, Inc.
This file is part of GDB.
@@ -82,7 +83,7 @@ struct floatformat
const char *name;
/* Validator method. */
- int (*is_valid) (const struct floatformat *fmt, const char *from);
+ int (*is_valid) (const struct floatformat *fmt, const void *from);
};
/* floatformats for IEEE single and double, big and little endian. */
@@ -116,17 +117,17 @@ extern const struct floatformat floatformat_ia64_quad_little;
Store the double in *TO. */
extern void
-floatformat_to_double (const struct floatformat *, const char *, double *);
+floatformat_to_double (const struct floatformat *, const void *, double *);
/* The converse: convert the double *FROM to FMT
and store where TO points. */
extern void
-floatformat_from_double (const struct floatformat *, const double *, char *);
+floatformat_from_double (const struct floatformat *, const double *, void *);
/* Return non-zero iff the data at FROM is a valid number in format FMT. */
extern int
-floatformat_is_valid (const struct floatformat *fmt, const char *from);
+floatformat_is_valid (const struct floatformat *fmt, const void *from);
#endif /* defined (FLOATFORMAT_H) */
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index ec9f779..3e2e92e 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,16 @@
+2005-08-17 Mark Kettenis <kettenis@gnu.org>
+
+ * floatformat.c (floatformat_always_valid): Change type of last
+ argument to `void *'.
+ (floatformat_i387_ext_is_valid): Likewise.
+ (floatformat_to_double): Change type of second argument to `const
+ void *'.
+ (floatformat_from_double): Change type of last argument to `void
+ *'.
+ (floatformat_is_valid): Change type of last argument to `const
+ void *'.
+ (ieee_test): Remove redundant casts.
+
2005-08-17 Kelley Cook <kcook@gcc.gnu.org>
* strverscmp.c: Update FSF address.
diff --git a/libiberty/floatformat.c b/libiberty/floatformat.c
index e466f53..8f0d789 100644
--- a/libiberty/floatformat.c
+++ b/libiberty/floatformat.c
@@ -1,5 +1,6 @@
/* IEEE floating point support routines, for GDB, the GNU Debugger.
- Copyright (C) 1991, 1994, 1999, 2000, 2003 Free Software Foundation, Inc.
+ Copyright 1991, 1994, 1999, 2000, 2003, 2005
+ Free Software Foundation, Inc.
This file is part of GDB.
@@ -52,11 +53,11 @@ static unsigned long get_field (const unsigned char *,
unsigned int,
unsigned int);
static int floatformat_always_valid (const struct floatformat *fmt,
- const char *from);
+ const void *from);
static int
floatformat_always_valid (const struct floatformat *fmt ATTRIBUTE_UNUSED,
- const char *from ATTRIBUTE_UNUSED)
+ const void *from ATTRIBUTE_UNUSED)
{
return 1;
}
@@ -107,23 +108,24 @@ const struct floatformat floatformat_ieee_double_littlebyte_bigword =
floatformat_always_valid
};
-static int floatformat_i387_ext_is_valid (const struct floatformat *fmt, const char *from);
+static int floatformat_i387_ext_is_valid (const struct floatformat *fmt,
+ const void *from);
static int
-floatformat_i387_ext_is_valid (const struct floatformat *fmt, const char *from)
+floatformat_i387_ext_is_valid (const struct floatformat *fmt, const void *from)
{
/* In the i387 double-extended format, if the exponent is all ones,
then the integer bit must be set. If the exponent is neither 0
nor ~0, the intbit must also be set. Only if the exponent is
zero can it be zero, and then it must be zero. */
unsigned long exponent, int_bit;
- const unsigned char *ufrom = (const unsigned char *) from;
-
+ const unsigned char *ufrom = from;
+
exponent = get_field (ufrom, fmt->byteorder, fmt->totalsize,
fmt->exp_start, fmt->exp_len);
int_bit = get_field (ufrom, fmt->byteorder, fmt->totalsize,
fmt->man_start, 1);
-
+
if ((exponent == 0) != (int_bit == 0))
return 0;
else
@@ -267,9 +269,9 @@ get_field (const unsigned char *data, enum floatformat_byteorders order,
void
floatformat_to_double (const struct floatformat *fmt,
- const char *from, double *to)
+ const void *from, double *to)
{
- const unsigned char *ufrom = (const unsigned char *)from;
+ const unsigned char *ufrom = from;
double dto;
long exponent;
unsigned long mant;
@@ -438,14 +440,14 @@ put_field (unsigned char *data, enum floatformat_byteorders order,
void
floatformat_from_double (const struct floatformat *fmt,
- const double *from, char *to)
+ const double *from, void *to)
{
double dfrom;
int exponent;
double mant;
unsigned int mant_bits, mant_off;
int mant_bits_left;
- unsigned char *uto = (unsigned char *)to;
+ unsigned char *uto = to;
dfrom = *from;
memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT);
@@ -533,7 +535,7 @@ floatformat_from_double (const struct floatformat *fmt,
/* Return non-zero iff the data at FROM is a valid number in format FMT. */
int
-floatformat_is_valid (const struct floatformat *fmt, const char *from)
+floatformat_is_valid (const struct floatformat *fmt, const void *from)
{
return fmt->is_valid (fmt, from);
}
@@ -550,15 +552,13 @@ ieee_test (double n)
{
double result;
- floatformat_to_double (&floatformat_ieee_double_little, (char *) &n,
- &result);
+ floatformat_to_double (&floatformat_ieee_double_little, &n, &result);
if ((n != result && (! isnan (n) || ! isnan (result)))
|| (n < 0 && result >= 0)
|| (n >= 0 && result < 0))
printf ("Differ(to): %.20g -> %.20g\n", n, result);
- floatformat_from_double (&floatformat_ieee_double_little, &n,
- (char *) &result);
+ floatformat_from_double (&floatformat_ieee_double_little, &n, &result);
if ((n != result && (! isnan (n) || ! isnan (result)))
|| (n < 0 && result >= 0)
|| (n >= 0 && result < 0))