From c4e8c9f318a4cb9ff75d8955482a8ca6412803cd Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 18 Jan 2006 21:32:45 +0000 Subject: Make sure that cloning a module clones its target triple and dependent 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 | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib/Transforms/Utils/CloneModule.cpp') diff --git a/lib/Transforms/Utils/CloneModule.cpp b/lib/Transforms/Utils/CloneModule.cpp index 309b280cc0..324e00aaa8 100644 --- a/lib/Transforms/Utils/CloneModule.cpp +++ b/lib/Transforms/Utils/CloneModule.cpp @@ -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. -- cgit v1.2.3