Mercurial > projects > ldc
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; } /**