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:
Tomas Lindquist Olsen
2008-10-06 14:37:00 +02:00
parent ecd8a2ac07
commit e109025c00
2 changed files with 0 additions and 3 deletions

View File

@@ -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);
}

View File

@@ -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))