llvm-6502/test/Feature/comdat.ll
David Majnemer e8d826b844 IR: Allow comdats to be applied to globals with internal linkage
Our verifier check for checking if a global has local linkage was too
strict.  Forbid private linkage but permit local linkage.

Object file formats permit this and forbidding it prevents elimination
of unused, internal, vftables under the MSVC ABI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@212900 91177308-0d34-0410-b5e6-96231b3b80d8
2014-07-13 04:56:11 +00:00

22 lines
381 B
LLVM

; RUN: llvm-as < %s | llvm-dis | FileCheck %s
$f = comdat any
; CHECK: $f = comdat any
$f2 = comdat any
; CHECK-NOT: f2
@v = global i32 0, comdat $f
; CHECK: @v = global i32 0, comdat $f
@a = alias i32* @v
; CHECK: @a = alias i32* @v{{$}}
define void @f() comdat $f {
ret void
}
; CHECK: define void @f() comdat $f
$i = comdat largest
@i = internal global i32 0, comdat $i