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
This commit is contained in:
Bill Wendling 2013-07-08 23:23:03 +00:00
parent 6cf7246eca
commit c6fbaa9701

View File

@ -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;