From 976af7236d6d274767ae29050008e11a88bba463 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Tue, 6 Feb 2018 03:29:18 +0000 Subject: [PATCH] ThinLTOBitcodeWriter: Do not include module-level inline asm in the merged 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 --- lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp | 1 + test/Transforms/ThinLTOBitcodeWriter/module-asm.ll | 12 ++++++++++++ 2 files changed, 13 insertions(+) create mode 100644 test/Transforms/ThinLTOBitcodeWriter/module-asm.ll diff --git a/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp b/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp index f5a3d4452c7..d2ce97abdd4 100644 --- a/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp +++ b/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp @@ -298,6 +298,7 @@ void splitAndWriteThinLTOBitcode( return false; })); StripDebugInfo(*MergedM); + MergedM->setModuleInlineAsm(""); for (Function &F : *MergedM) if (!F.isDeclaration()) { diff --git a/test/Transforms/ThinLTOBitcodeWriter/module-asm.ll b/test/Transforms/ThinLTOBitcodeWriter/module-asm.ll new file mode 100644 index 00000000000..15e47785cbe --- /dev/null +++ b/test/Transforms/ThinLTOBitcodeWriter/module-asm.ll @@ -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" -- 2.11.0