blob: d1e382a2f2784daa23a82f357fd37da552d3bd0b [file] [log] [blame]
Rafael Espindola39e89e82015-12-01 15:19:48 +00001; 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: }