Follow up to d0858bffa11, add missing REQUIRES x86
[llvm-project.git] / llvm / test / Linker / comdat-refer-to-discarded.ll
blob5a776359c43da7074c09df751864e143ed72bdde
1 ; RUN: rm -rf %t && split-file %s %t
2 ; RUN: llvm-link -S %t/1.ll %t/1-aux.ll -o - | FileCheck %s
4 ;--- 1.ll
5 ; In 1-aux.ll a function not in the $foo comdat (zed) references an
6 ; internal function in the comdat $foo.
7 ; The IR would be ilegal on ELF ("relocation refers to discarded section"),
8 ; but COFF linkers seem to just duplicate the comdat.
10 $foo = comdat any
11 @foo = internal global i8 0, comdat
12 define ptr @bar() {
13        ret ptr @foo
16 ; CHECK: $foo = comdat any
18 ; CHECK: @foo = internal global i8 0, comdat
19 ; CHECK: @foo.1 = internal global i8 1, comdat($foo)
21 ; CHECK:      define ptr @bar() {
22 ; CHECK-NEXT:   ret ptr @foo
23 ; CHECK-NEXT: }
25 ; CHECK:      define ptr @zed() {
26 ; CHECK-NEXT:   call void @bax()
27 ; CHECK-NEXT:   ret ptr @foo.1
28 ; CHECK-NEXT: }
30 ; CHECK:      define internal void @bax() comdat($foo) {
31 ; CHECK-NEXT:   ret void
32 ; CHECK-NEXT: }
34 ;--- 1-aux.ll
35 $foo = comdat any
36 @foo = internal global i8 1, comdat
37 define ptr @zed() {
38   call void @bax()
39   ret ptr @foo
41 define internal void @bax() comdat($foo) {
42   ret void