llvm/test/Linker/comdat9.ll
Rafael Espindola 6f5ddf8965 Fix lazy linking of comdat members.
If not for lazy linking of linkonce GVs, comdats are just a
preprocessing before symbol resolution.

Lazy linking complicates it since when we pick a visible member of
comdat, we have to make sure the rest of it passes symbol resolution
too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@264223 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-24 00:06:03 +00:00

23 lines
473 B
LLVM

; RUN: llvm-link %s -S -o - | FileCheck %s
$c = comdat any
@a = alias void (), void ()* @f
define internal void @f() comdat($c) {
ret void
}
; CHECK-DAG: $c = comdat any
; CHECK-DAG: @a = alias void (), void ()* @f
; CHECK-DAG: define internal void @f() comdat($c)
$f2 = comdat largest
define linkonce_odr void @f2() comdat($f2) {
ret void
}
define void @f3() comdat($f2) {
ret void
}
; CHECK-DAG: $f2 = comdat largest
; CHECK-DAG: define linkonce_odr void @f2()