Make sure that cloning a module clones its target triple and dependent
authorChris Lattner <sabre@nondot.org>
Wed, 18 Jan 2006 21:32:45 +0000 (21:32 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 18 Jan 2006 21:32:45 +0000 (21:32 +0000)
library list as well.  This should help bugpoint.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25424 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/CloneModule.cpp

index 309b280cc02b0899ff3331f941269f348fa87dd0..324e00aaa8c1208b633c41cceee4f790b31c74fb 100644 (file)
@@ -30,14 +30,18 @@ Module *llvm::CloneModule(const Module *M) {
   Module *New = new Module(M->getModuleIdentifier());
   New->setEndianness(M->getEndianness());
   New->setPointerSize(M->getPointerSize());
+  New->setTargetTriple(M->getTargetTriple());
 
-  // Copy all of the type symbol table entries over...
+  // Copy all of the type symbol table entries over.
   const SymbolTable &SymTab = M->getSymbolTable();
   SymbolTable::type_const_iterator TypeI = SymTab.type_begin();
   SymbolTable::type_const_iterator TypeE = SymTab.type_end();
-  for ( ; TypeI != TypeE; ++TypeI ) {
+  for (; TypeI != TypeE; ++TypeI)
     New->addTypeName(TypeI->first, TypeI->second);
-  }
+  
+  // Copy all of the dependent libraries over.
+  for (Module::lib_iterator I = M->lib_begin(), E = M->lib_end(); I != E; ++I)
+    New->addLibrary(*I);
 
   // Create the value map that maps things from the old module over to the new
   // module.