diff runtime/internal/lifetime.d @ 1506:76936858d1c6

Return `void*` from _d_allocclass so LLVM doesn't do weird things with it... This allows `-instcombine` followed by `-gvn` to do devirtualization, so add `-gvn` in strategic places in the default pass order.
author Frits van Bommel <fvbommel wxs.nl>
date Sat, 20 Jun 2009 11:39:13 +0200
parents d7ec997de427
children
line wrap: on
line diff
--- a/runtime/internal/lifetime.d	Thu Jun 18 15:44:18 2009 +0100
+++ b/runtime/internal/lifetime.d	Sat Jun 20 11:39:13 2009 +0200
@@ -107,7 +107,7 @@
 /**
  *
  */
-extern (C) Object _d_allocclass(ClassInfo ci)
+extern (C) void* _d_allocclass(ClassInfo ci)
 {
     void* p;
 
@@ -150,7 +150,7 @@
     //(cast(byte*) p)[0 .. ci.init.length] = ci.init[];
 
     debug(PRINTF) printf("initialization done\n");
-    return cast(Object) p;
+    return p;
 }
 
 /**