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.
This commit is contained in:
Frits van Bommel
2009-06-20 11:39:13 +02:00
parent 34fbdb6271
commit 465f15eda0
3 changed files with 10 additions and 6 deletions

View File

@@ -107,7 +107,7 @@ private
/**
*
*/
extern (C) Object _d_allocclass(ClassInfo ci)
extern (C) void* _d_allocclass(ClassInfo ci)
{
void* p;
@@ -150,7 +150,7 @@ extern (C) Object _d_allocclass(ClassInfo ci)
//(cast(byte*) p)[0 .. ci.init.length] = ci.init[];
debug(PRINTF) printf("initialization done\n");
return cast(Object) p;
return p;
}
/**