mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-14 03:43:13 +01:00
Removed some checks for abstract llvm types that were too strict, a 'opaque* null' is a valid initializer... when structs in D can be just a forward reference.
This commit is contained in:
@@ -1407,7 +1407,6 @@ void DtoDefineClassInfo(ClassDeclaration* cd)
|
||||
}
|
||||
else {
|
||||
c = llvm::ConstantExpr::getBitCast(cd->ir.irStruct->init, byteptrty);
|
||||
assert(!cd->ir.irStruct->constInit->getType()->isAbstract());
|
||||
size_t initsz = getABITypeSize(cd->ir.irStruct->constInit->getType());
|
||||
c = DtoConstSlice(DtoConstSize_t(initsz), c);
|
||||
}
|
||||
|
||||
@@ -960,8 +960,6 @@ void DtoConstInitGlobal(VarDeclaration* vd)
|
||||
_type = _init->getType();
|
||||
llvm::cast<LLOpaqueType>(vd->ir.irGlobal->type.get())->refineAbstractTypeTo(_type);
|
||||
_type = vd->ir.irGlobal->type.get();
|
||||
//_type->dump();
|
||||
assert(!_type->isAbstract());
|
||||
|
||||
llvm::GlobalVariable* gvar = llvm::cast<llvm::GlobalVariable>(vd->ir.irGlobal->value);
|
||||
if (!(vd->storage_class & STCextern) && (vd->getModule() == gIR->dmodule || istempl))
|
||||
|
||||
Reference in New Issue
Block a user