[llvm] r185882 - Don't run internalize if we're outputing bit-code and not an object file.

Bill Wendling isanbard at gmail.com
Mon Jul 8 16:23:03 PDT 2013


Author: void
Date: Mon Jul  8 18:23:03 2013
New Revision: 185882

URL: http://llvm.org/viewvc/llvm-project?rev=185882&view=rev
Log:
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>

Modified:
    llvm/trunk/tools/lto/LTOCodeGenerator.cpp

Modified: llvm/trunk/tools/lto/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/LTOCodeGenerator.cpp?rev=185882&r1=185881&r2=185882&view=diff
==============================================================================
--- llvm/trunk/tools/lto/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/tools/lto/LTOCodeGenerator.cpp Mon Jul  8 18:23:03 2013
@@ -130,8 +130,10 @@ bool LTOCodeGenerator::writeMergedModule
   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;





More information about the llvm-commits mailing list