diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 85e96bad04b3a7ff84ebe5bfb4e63f27c7f7c5ec..4d5caf379812524a5f57b4fb7b162a212fba911f 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,10 @@
+2005-12-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+	* floatformat.c (floatformat_i387_ext_is_valid): Use explicit cast
+	to convert from "from".
+	(floatformat_to_double): Likewise.
+	(floatformat_from_double): Use explicit cast to convert from "to".
+
 2005-12-10  Terry Laurenzo  <tlaurenzo@gmail.com>
 
 	PR java/9861
diff --git a/libiberty/floatformat.c b/libiberty/floatformat.c
index 28c9fbf662dbae73270c3b900f7fbe5bd1a7256b..c97b6c57f0aeb768170039bccf67afaeea72c387 100644
--- a/libiberty/floatformat.c
+++ b/libiberty/floatformat.c
@@ -143,7 +143,7 @@ floatformat_i387_ext_is_valid (const struct floatformat *fmt, const void *from)
      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 = from;
+  const unsigned char *ufrom = (const unsigned char *) from;
 
   exponent = get_field (ufrom, fmt->byteorder, fmt->totalsize,
 			fmt->exp_start, fmt->exp_len);
@@ -295,7 +295,7 @@ void
 floatformat_to_double (const struct floatformat *fmt,
                        const void *from, double *to)
 {
-  const unsigned char *ufrom = from;
+  const unsigned char *ufrom = (const unsigned char *) from;
   double dto;
   long exponent;
   unsigned long mant;
@@ -471,7 +471,7 @@ floatformat_from_double (const struct floatformat *fmt,
   double mant;
   unsigned int mant_bits, mant_off;
   int mant_bits_left;
-  unsigned char *uto = to;
+  unsigned char *uto = (unsigned char *) to;
 
   dfrom = *from;
   memset (uto, 0, fmt->totalsize / FLOATFORMAT_CHAR_BIT);