diff gen/typinf.cpp @ 96:ce7ed8f59b99 trunk

[svn r100] Moved test/ray.d to demos/ray.d. Cleanups.
author lindquist
date Mon, 12 Nov 2007 07:58:44 +0100
parents ccca1c13e13a
children 6789050b5ad1
line wrap: on
line diff
--- a/gen/typinf.cpp	Mon Nov 12 06:43:33 2007 +0100
+++ b/gen/typinf.cpp	Mon Nov 12 07:58:44 2007 +0100
@@ -277,7 +277,7 @@
 
     llvm::Constant* initZ = base->llvmInitZ;
     assert(initZ);
-    const llvm::StructType* stype = llvm::cast<llvm::StructType>(initZ->getType());
+    const llvm::StructType* stype = isaStruct(initZ->getType());
 
     std::vector<llvm::Constant*> sinits;
     sinits.push_back(initZ->getOperand(0));
@@ -287,7 +287,7 @@
     TypedefDeclaration *sd = tc->sym;
 
     // TypeInfo base
-    //const llvm::PointerType* basept = llvm::cast<llvm::PointerType>(initZ->getOperand(1)->getType());
+    //const llvm::PointerType* basept = isaPointer(initZ->getOperand(1)->getType());
     //sinits.push_back(llvm::ConstantPointerNull::get(basept));
     Logger::println("generating base typeinfo");
     //sd->basetype = sd->basetype->merge();
@@ -341,7 +341,7 @@
 
     llvm::Constant* initZ = base->llvmInitZ;
     assert(initZ);
-    const llvm::StructType* stype = llvm::cast<llvm::StructType>(initZ->getType());
+    const llvm::StructType* stype = isaStruct(initZ->getType());
 
     std::vector<llvm::Constant*> sinits;
     sinits.push_back(initZ->getOperand(0));
@@ -351,7 +351,7 @@
     EnumDeclaration *sd = tc->sym;
 
     // TypeInfo base
-    //const llvm::PointerType* basept = llvm::cast<llvm::PointerType>(initZ->getOperand(1)->getType());
+    //const llvm::PointerType* basept = isaPointer(initZ->getOperand(1)->getType());
     //sinits.push_back(llvm::ConstantPointerNull::get(basept));
     Logger::println("generating base typeinfo");
     //sd->basetype = sd->basetype->merge();
@@ -403,7 +403,7 @@
 
     llvm::Constant* initZ = base->llvmInitZ;
     assert(initZ);
-    const llvm::StructType* stype = llvm::cast<llvm::StructType>(initZ->getType());
+    const llvm::StructType* stype = isaStruct(initZ->getType());
 
     std::vector<llvm::Constant*> sinits;
     sinits.push_back(initZ->getOperand(0));
@@ -538,7 +538,7 @@
     ClassDeclaration* base = Type::typeinfostruct;
     base->toObjFile();
 
-    const llvm::StructType* stype = llvm::cast<llvm::StructType>(base->llvmType);
+    const llvm::StructType* stype = isaStruct(base->llvmType);
 
     std::vector<llvm::Constant*> sinits;
     sinits.push_back(base->llvmVtbl);
@@ -609,7 +609,7 @@
 #endif
 
     Logger::println("************** B");
-    const llvm::PointerType* ptty = llvm::cast<llvm::PointerType>(stype->getElementType(3));
+    const llvm::PointerType* ptty = isaPointer(stype->getElementType(3));
 
     s = search_function(sd, Id::tohash);
     fdx = s ? s->isFuncDeclaration() : NULL;
@@ -637,7 +637,7 @@
     for (int i = 0; i < 2; i++)
     {
         Logger::println("************** C %d", i);
-        ptty = llvm::cast<llvm::PointerType>(stype->getElementType(4+i));
+        ptty = isaPointer(stype->getElementType(4+i));
         if (fdx)
         {
             fd = fdx->overloadExactMatch(tfeqptr);
@@ -662,7 +662,7 @@
     }
 
     Logger::println("************** D");
-    ptty = llvm::cast<llvm::PointerType>(stype->getElementType(6));
+    ptty = isaPointer(stype->getElementType(6));
     s = search_function(sd, Id::tostring);
     fdx = s ? s->isFuncDeclaration() : NULL;
     if (fdx)
@@ -881,7 +881,7 @@
     inits.push_back(c);
 
     // build the initializer
-    const llvm::StructType* st = llvm::cast<llvm::StructType>(cinfo->llvmInitZ->getType());
+    const llvm::StructType* st = isaStruct(cinfo->llvmInitZ->getType());
     llvm::Constant* finalinit = llvm::ConstantStruct::get(st, inits);
     Logger::cout() << "built the classinfo initializer:\n" << *finalinit <<'\n';