llvm-6502/test/Transforms/Inline/pr21206.ll
David Majnemer b5b306e6a9 Inliner: Non-local functions in COMDATs shouldn't be dropped
A function with discardable linkage cannot be discarded if its a member
of a COMDAT group without considering all the other COMDAT members as
well.  This sort of thing is already handled by GlobalOpt/GlobalDCE.

This fixes PR21206.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219335 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-08 19:32:32 +00:00

19 lines
349 B
LLVM

; RUN: opt < %s -inline -S | FileCheck %s
$c = comdat any
; CHECK: $c = comdat any
define linkonce_odr void @foo() comdat $c {
ret void
}
; CHECK: define linkonce_odr void @foo() comdat $c
define linkonce_odr void @bar() comdat $c {
ret void
}
; CHECK: define linkonce_odr void @bar() comdat $c
define void()* @zed() {
ret void()* @foo
}