diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0ac55032cca0ba5c057f0c0ee190ff234396dda9..79bd10e5b2b15a48fdf17487ed0f1e1aa759a1da 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-18  Ben Elliston  <bje@au.ibm.com>
+
+	* bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
+	C++ warning about implicit conversion from void * to struct
+	bitmap_head_def *.
+	(bitmap_obstack_free): Likewise for bitmap_element *.
+
 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
 
 	* Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
diff --git a/gcc/bitmap.c b/gcc/bitmap.c
index 5e841e067a5e5fd2b8da5b2cdefbdfdf7a2069f5..34eace495f8d328b72becf2cb788cabc69df2aa9 100644
--- a/gcc/bitmap.c
+++ b/gcc/bitmap.c
@@ -356,7 +356,7 @@ bitmap_obstack_alloc_stat (bitmap_obstack *bit_obstack MEM_STAT_DECL)
     bit_obstack = &bitmap_default_obstack;
   map = bit_obstack->heads;
   if (map)
-    bit_obstack->heads = (void *)map->first;
+    bit_obstack->heads = (struct bitmap_head_def *) map->first;
   else
     map = XOBNEW (&bit_obstack->obstack, bitmap_head);
   bitmap_initialize_stat (map, bit_obstack PASS_MEM_STAT);
@@ -391,7 +391,7 @@ bitmap_obstack_free (bitmap map)
   if (map)
     {
       bitmap_clear (map);
-      map->first = (void *)map->obstack->heads;
+      map->first = (bitmap_element *) map->obstack->heads;
 #ifdef GATHER_STATISTICS
       register_overhead (map, -((int)sizeof (bitmap_head)));
 #endif