Fix problem which effected linking apache
authorChris Lattner <sabre@nondot.org>
Tue, 21 Oct 2003 17:39:59 +0000 (17:39 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 21 Oct 2003 17:39:59 +0000 (17:39 +0000)
llvm-svn: 9335

llvm/lib/VMCore/Constants.cpp
llvm/lib/VMCore/SlotCalculator.cpp

index a1ebd91..b755c6f 100644 (file)
@@ -268,7 +268,7 @@ ConstantStruct::ConstantStruct(const StructType *T,
   Operands.reserve(V.size());
   for (unsigned i = 0, e = V.size(); i != e; ++i) {
     assert((V[i]->getType() == ETypes[i] ||
-            (ETypes[i]->isAbstract() &&
+            ((ETypes[i]->isAbstract() || V[i]->getType()->isAbstract()) &&
              ETypes[i]->getPrimitiveID()==V[i]->getType()->getPrimitiveID())) &&
            "Initializer for struct element doesn't match struct element type!");
     Operands.push_back(Use(V[i], this));
index f527b18..7b4a6da 100644 (file)
@@ -174,8 +174,12 @@ void SlotCalculator::incorporateFunction(const Function *F) {
   SC_DEBUG("Inserting Instructions:\n");
 
   // Add all of the instructions to the type planes...
-  for_each(inst_begin(F), inst_end(F),
-          bind_obj(this, &SlotCalculator::getOrCreateSlot));
+  for (Function::const_iterator BB = F->begin(), E = F->end(); BB != E; ++BB)
+    for (BasicBlock::const_iterator I = BB->begin(), E = BB->end(); I!=E; ++I) {
+      getOrCreateSlot(I);
+      //if (const VANextInst *VAN = dyn_cast<VANextInst>(I))
+      //  getOrCreateSlot(VAN->getArgType());
+    }
 
   if (!IgnoreNamedNodes) {
     SC_DEBUG("Inserting SymbolTable values:\n");