Mercurial > projects > ldc
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 |