comparison gen/main.cpp @ 1390:c5a92bee639d

Don't try to strip metadata if we don't generate any
author Frits van Bommel <fvbommel wxs.nl>
date Sun, 17 May 2009 22:40:02 +0200
parents 5855958073a9
children 1311dabc6a1f
comparison
equal deleted inserted replaced
1389:0bafe24a329f 1390:c5a92bee639d
34 34
35 #include "gen/logger.h" 35 #include "gen/logger.h"
36 #include "gen/linker.h" 36 #include "gen/linker.h"
37 #include "gen/irstate.h" 37 #include "gen/irstate.h"
38 #include "gen/toobj.h" 38 #include "gen/toobj.h"
39 #include "gen/metadata.h"
39 #include "gen/passes/Passes.h" 40 #include "gen/passes/Passes.h"
40 41
41 #include "gen/cl_options.h" 42 #include "gen/cl_options.h"
42 #include "gen/cl_helpers.h" 43 #include "gen/cl_helpers.h"
43 using namespace opts; 44 using namespace opts;
869 870
870 llvm::Linker linker(name, name); 871 llvm::Linker linker(name, name);
871 std::string errormsg; 872 std::string errormsg;
872 for (int i = 0; i < llvmModules.size(); i++) 873 for (int i = 0; i < llvmModules.size(); i++)
873 { 874 {
875 #ifdef USE_METADATA
874 //FIXME: workaround for llvm metadata bug: 876 //FIXME: workaround for llvm metadata bug:
875 // the LinkInModule call asserts with metadata unstripped 877 // the LinkInModule call asserts with metadata unstripped
876 llvm::ModulePass* stripMD = createStripMetaData(); 878 llvm::ModulePass* stripMD = createStripMetaData();
877 stripMD->runOnModule(*llvmModules[i]); 879 stripMD->runOnModule(*llvmModules[i]);
878 delete stripMD; 880 delete stripMD;
879 881 #endif
882
880 if(linker.LinkInModule(llvmModules[i], &errormsg)) 883 if(linker.LinkInModule(llvmModules[i], &errormsg))
881 error("%s", errormsg.c_str()); 884 error("%s", errormsg.c_str());
882 delete llvmModules[i]; 885 delete llvmModules[i];
883 } 886 }
884 887