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++)
     {