diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-07-08 23:23:03 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-07-08 23:23:03 +0000 |
commit | c6fbaa97016beb90a7508dd6442c83565c27c241 (patch) | |
tree | 2433bec4f44201080c087b5291a39213c672bceb | |
parent | 6cf7246ecaf058733fdf8fa47896907204839f68 (diff) | |
download | external_llvm-c6fbaa97016beb90a7508dd6442c83565c27c241.zip external_llvm-c6fbaa97016beb90a7508dd6442c83565c27c241.tar.gz external_llvm-c6fbaa97016beb90a7508dd6442c83565c27c241.tar.bz2 |
Don't run internalize if we're outputing bit-code and not an object file.
The problem with running internalize before we're ready to output an object file
is that it may change a 'weak' symbol into an internal one, but that symbol
could be needed by an external object file --- e.g. with arclite.
<rdar://problem/14334895>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185882 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/lto/LTOCodeGenerator.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp index 022a04c..7616aa3 100644 --- a/tools/lto/LTOCodeGenerator.cpp +++ b/tools/lto/LTOCodeGenerator.cpp @@ -130,8 +130,10 @@ bool LTOCodeGenerator::writeMergedModules(const char *path, if (determineTarget(errMsg)) return true; - // mark which symbols can not be internalized - applyScopeRestrictions(); + // Run the verifier on the merged modules. + PassManager passes; + passes.add(createVerifierPass()); + passes.run(*_linker.getModule()); // create output file std::string ErrInfo; |