Mercurial > projects > ldc
diff gen/typinf.cpp @ 133:44a95ac7368a trunk
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
In particular, assertions has been fixed to include file/line info, and much more!
author | lindquist |
---|---|
date | Mon, 14 Jan 2008 05:11:54 +0100 |
parents | 1700239cab2e |
children | 0e28624814e8 |
line wrap: on
line diff
--- a/gen/typinf.cpp Fri Jan 11 17:57:40 2008 +0100 +++ b/gen/typinf.cpp Mon Jan 14 05:11:54 2008 +0100 @@ -371,7 +371,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(getNullPtr(getPtrToType(llvm::Type::Int8Ty))); assert(tinfo->ty == Ttypedef); TypeTypedef *tc = (TypeTypedef *)tinfo; @@ -400,10 +400,10 @@ assert(sinits.back()->getType() == stype->getElementType(3)); // void[] init - const llvm::PointerType* initpt = llvm::PointerType::get(llvm::Type::Int8Ty); + const llvm::PointerType* initpt = getPtrToType(llvm::Type::Int8Ty); if (tinfo->isZeroInit() || !sd->init) // 0 initializer, or the same as the base type { - sinits.push_back(DtoConstSlice(DtoConstSize_t(0), llvm::ConstantPointerNull::get(initpt))); + sinits.push_back(DtoConstSlice(DtoConstSize_t(0), getNullPtr(initpt))); } else { @@ -412,7 +412,7 @@ ciname.append("__init"); llvm::GlobalVariable* civar = new llvm::GlobalVariable(DtoType(sd->basetype),true,llvm::GlobalValue::InternalLinkage,ci,ciname,gIR->module); llvm::Constant* cicast = llvm::ConstantExpr::getBitCast(civar, initpt); - size_t cisize = gTargetData->getTypeSize(DtoType(sd->basetype)); + size_t cisize = getTypeStoreSize(DtoType(sd->basetype)); sinits.push_back(DtoConstSlice(DtoConstSize_t(cisize), cicast)); } @@ -457,7 +457,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); assert(tinfo->ty == Tenum); TypeEnum *tc = (TypeEnum *)tinfo; @@ -485,7 +485,7 @@ assert(sinits.back()->getType() == stype->getElementType(3)); // void[] init - const llvm::PointerType* initpt = llvm::PointerType::get(llvm::Type::Int8Ty); + const llvm::PointerType* initpt = getPtrToType(llvm::Type::Int8Ty); if (tinfo->isZeroInit() || !sd->defaultval) // 0 initializer, or the same as the base type { sinits.push_back(DtoConstSlice(DtoConstSize_t(0), llvm::ConstantPointerNull::get(initpt))); @@ -498,7 +498,7 @@ ciname.append("__init"); llvm::GlobalVariable* civar = new llvm::GlobalVariable(memty,true,llvm::GlobalValue::InternalLinkage,ci,ciname,gIR->module); llvm::Constant* cicast = llvm::ConstantExpr::getBitCast(civar, initpt); - size_t cisize = gTargetData->getTypeSize(memty); + size_t cisize = getTypeStoreSize(memty); sinits.push_back(DtoConstSlice(DtoConstSize_t(cisize), cicast)); } @@ -537,7 +537,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // TypeInfo base Logger::println("generating base typeinfo"); @@ -649,7 +649,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // value typeinfo assert(tinfo->ty == Tsarray); @@ -712,7 +712,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // get type assert(tinfo->ty == Taarray); @@ -847,7 +847,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // char[] name char *name = sd->toPrettyChars(); @@ -856,14 +856,14 @@ assert(sinits.back()->getType() == stype->getElementType(2)); // void[] init - const llvm::PointerType* initpt = llvm::PointerType::get(llvm::Type::Int8Ty); + const llvm::PointerType* initpt = getPtrToType(llvm::Type::Int8Ty); if (sd->zeroInit) // 0 initializer, or the same as the base type { sinits.push_back(DtoConstSlice(DtoConstSize_t(0), llvm::ConstantPointerNull::get(initpt))); } else { - size_t cisize = gTargetData->getTypeSize(tc->llvmType->get()); + size_t cisize = getTypeStoreSize(tc->llvmType->get()); llvm::Constant* cicast = llvm::ConstantExpr::getBitCast(sd->llvmInit, initpt); sinits.push_back(DtoConstSlice(DtoConstSize_t(cisize), cicast)); } @@ -1046,7 +1046,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // get classinfo assert(tinfo->ty == Tclass); @@ -1102,7 +1102,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // get classinfo assert(tinfo->ty == Tclass); @@ -1158,7 +1158,7 @@ sinits.push_back(base->llvmVtbl); // monitor - sinits.push_back(llvm::ConstantPointerNull::get(llvm::PointerType::get(llvm::Type::Int8Ty))); + sinits.push_back(llvm::ConstantPointerNull::get(getPtrToType(llvm::Type::Int8Ty))); // create elements array assert(tinfo->ty == Ttuple); @@ -1168,7 +1168,7 @@ std::vector<llvm::Constant*> arrInits; const llvm::Type* tiTy = Type::typeinfo->type->llvmType->get(); - tiTy = llvm::PointerType::get(tiTy); + tiTy = getPtrToType(tiTy); for (size_t i = 0; i < dim; i++) {