Files
clang-p2996/llvm/test/LTO/X86/Inputs/dllimport.ll
Teresa Johnson b963c0b658 [LTO] Handle __imp_ (dllimport) symbols consistently with lld
Summary:
Similar to what lld already does for dllimport symbols which are
prefaced with __imp_ (see lld patch r240620), strip off the __imp_
prefix in LTO. Otherwise we can get 2 separate GlobalResolution for
a single symbol, the dllimport declaration, and the definition, which
leads to incorrect LTO handling.

Fixes PR38105.

Reviewers: pcc

Subscribers: mehdi_amini, inglorion, steven_wu, dexonsmith, llvm-commits

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

llvm-svn: 337762
2018-07-23 22:33:57 +00:00

18 lines
673 B
LLVM

; ModuleID = 'b.obj'
source_filename = "b.cpp"
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.11.0"
; Function Attrs: norecurse nounwind readnone sspstrong uwtable
define dso_local i32 @"?foo@@YAHXZ"() local_unnamed_addr {
entry:
ret i32 42
}
!llvm.module.flags = !{!1}
!1 = !{i32 1, !"ThinLTO", i32 0}
^0 = module: (path: "b.obj", hash: (0, 0, 0, 0, 0))
^1 = gv: (name: "?foo@@YAHXZ", summaries: (function: (module: ^0, flags: (linkage: external, notEligibleToImport: 1, live: 0, dsoLocal: 1), insts: 1, funcFlags: (readNone: 1, readOnly: 0, noRecurse: 1, returnDoesNotAlias: 0)))) ; guid = 2709792123250749187