• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llvm-link -S %s %p/Inputs/comdat13.ll -o - | FileCheck %s
2
3; In Inputs/comdat13.ll a function not in the $foo comdat (zed) references an
4; internal function in the comdat $foo.
5; The IR would be ilegal on ELF ("relocation refers to discarded section"),
6; but COFF linkers seem to just duplicate the comdat.
7
8$foo = comdat any
9@foo = internal global i8 0, comdat
10define i8* @bar() {
11       ret i8* @foo
12}
13
14; CHECK: $foo = comdat any
15
16; CHECK: @foo = internal global i8 0, comdat
17; CHECK: @foo.1 = internal global i8 1, comdat($foo)
18
19; CHECK:      define i8* @bar() {
20; CHECK-NEXT:   ret i8* @foo
21; CHECK-NEXT: }
22
23; CHECK:      define i8* @zed() {
24; CHECK-NEXT:   call void @bax()
25; CHECK-NEXT:   ret i8* @foo.1
26; CHECK-NEXT: }
27
28; CHECK:      define internal void @bax() comdat($foo) {
29; CHECK-NEXT:   ret void
30; CHECK-NEXT: }
31