Skip to content

Commit

Permalink
ThinLTOBitcodeWriter: Do not include module-level inline asm in the m…
Browse files Browse the repository at this point in the history
…erged module.

If the inline asm provides the definition of a symbol, this can result
in duplicate symbol errors.

Differential Revision: https://reviews.llvm.org/D42944

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324313 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
pcc committed Feb 6, 2018
1 parent e48a32e commit 976af72
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,7 @@ void splitAndWriteThinLTOBitcode(
return false;
}));
StripDebugInfo(*MergedM);
MergedM->setModuleInlineAsm("");

for (Function &F : *MergedM)
if (!F.isDeclaration()) {
Expand Down
12 changes: 12 additions & 0 deletions test/Transforms/ThinLTOBitcodeWriter/module-asm.ll
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
; RUN: opt -thinlto-bc -o %t %s
; RUN: llvm-modextract -b -n 0 -o - %t | llvm-dis | FileCheck --check-prefix=M0 %s
; RUN: llvm-modextract -b -n 1 -o - %t | llvm-dis | FileCheck --check-prefix=M1 %s

target triple = "x86_64-unknown-linux-gnu"

@g = constant i32 0, !type !0
!0 = !{i32 0, !"typeid"}

; M0: module asm "ret"
; M1-NOT: module asm
module asm "ret"

0 comments on commit 976af72

Please sign in to comment.