handle vectors. Any integers that got here would necessarily be different already.
authorChris Lattner <sabre@nondot.org>
Mon, 16 Jun 2008 18:27:53 +0000 (18:27 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 16 Jun 2008 18:27:53 +0000 (18:27 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52341 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Linker/LinkModules.cpp

index e36fbafc6faf2fbeb5b4b16d2c2263ed33828a76..14fe9959db80c9db5a1f48ed5b84b47d31a4fe9c 100644 (file)
@@ -102,12 +102,8 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
 
   // Otherwise, resolve the used type used by this derived type...
   switch (DestTyT->getTypeID()) {
-  case Type::IntegerTyID: {
-    if (cast<IntegerType>(DestTyT)->getBitWidth() !=
-        cast<IntegerType>(SrcTyT)->getBitWidth())
-      return true;
-    return false;
-  }
+  default:
+    return true;
   case Type::FunctionTyID: {
     if (cast<FunctionType>(DestTyT)->isVarArg() !=
         cast<FunctionType>(SrcTyT)->isVarArg() ||
@@ -122,7 +118,8 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
   }
   case Type::StructTyID: {
     if (getST(DestTy)->getNumContainedTypes() !=
-        getST(SrcTy)->getNumContainedTypes()) return 1;
+        getST(SrcTy)->getNumContainedTypes())
+      return true;
     for (unsigned i = 0, e = getST(DestTy)->getNumContainedTypes(); i != e; ++i)
       if (RecursiveResolveTypesI(getST(DestTy)->getContainedType(i),
                                  getST(SrcTy)->getContainedType(i), Pointers))
@@ -136,6 +133,13 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
     return RecursiveResolveTypesI(DAT->getElementType(), SAT->getElementType(),
                                   Pointers);
   }
+  case Type::VectorTyID: {
+    const VectorType *DVT = cast<VectorType>(DestTy.get());
+    const VectorType *SVT = cast<VectorType>(SrcTy.get());
+    if (DVT->getNumElements() != SVT->getNumElements()) return true;
+    return RecursiveResolveTypesI(DVT->getElementType(), SVT->getElementType(),
+                                  Pointers);
+  }
   case Type::PointerTyID: {
     // If this is a pointer type, check to see if we have already seen it.  If
     // so, we are in a recursive branch.  Cut off the search now.  We cannot use
@@ -155,7 +159,6 @@ static bool RecursiveResolveTypesI(const PATypeHolder &DestTy,
     Pointers.pop_back();
     return Result;
   }
-  default: assert(0 && "Unexpected type!"); return true;
   }
 }