diff --git a/ChangeLog b/ChangeLog
index 223f0c5..746e0b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-23  Bruno Haible  <bruno@clisp.org>
+
+	Support for gcc-4.3 snapshots.
+	* autoconf/floatparam.c (check): Change argument types to
+	'volatile type*'. This defeats optimizations of gcc 4.3.0 snapshots.
+
 2007-02-23  Bruno Haible  <bruno@clisp.org>
 
 	Change "make alls" and "make allo" to recurse into subdirectories.
diff --git a/autoconf/floatparam.c b/autoconf/floatparam.c
index a886371..195a698 100644
--- a/autoconf/floatparam.c
+++ b/autoconf/floatparam.c
@@ -29,7 +29,7 @@ static void header (void)
 }
 
 #define check(type,typeprefix,typestr,equalfn,mainfn)  \
-static boolean equalfn (type* x, type* y);				\
+static boolean equalfn (volatile type* x, volatile type* y);		\
 static void mainfn (void)						\
 {									\
   int mant_bits;							\
@@ -79,7 +79,10 @@ static void mainfn (void)						\
   }									\
   printf("\n");								\
 }									\
-static boolean equalfn (type* x, type* y) { return *x == *y; }		\
+static boolean equalfn (volatile type* x, volatile type* y)		\
+{									\
+  return *x == *y;							\
+}									\
 
 check(float,"float","float",equal_float,main_float)
 check(double,"double","double",equal_double,main_double)