oops, placement new should take a void*
diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h
index 80897c4..779b442 100644
--- a/Eigen/src/Core/Matrix.h
+++ b/Eigen/src/Core/Matrix.h
@@ -141,7 +141,7 @@
       return ei_aligned_malloc<ByteAlignedAsNeeded>(size);
     }
 
-    void *operator new(size_t, Matrix *ptr) throw()
+    void *operator new(size_t, void *ptr) throw()
     {
       return static_cast<void*>(ptr);
     }
@@ -151,7 +151,7 @@
       return ei_aligned_malloc<ByteAlignedAsNeeded>(size);
     }
 
-    void *operator new[](size_t, Matrix *ptr) throw()
+    void *operator new[](size_t, void *ptr) throw()
     {
       return static_cast<void*>(ptr);
     }