1; RUN: llvm-extract -func foo -S < %s | FileCheck %s
2; RUN: llvm-extract -delete -func foo -S < %s | FileCheck --check-prefix=DELETE %s
3; RUN: llvm-as < %s > %t
4; RUN: llvm-extract -func foo -S %t | FileCheck %s
5; RUN: llvm-extract -delete -func foo -S %t | FileCheck --check-prefix=DELETE %s
6
7; llvm-extract uses lazy bitcode loading, so make sure it correctly reads
8; from bitcode files in addition to assembly files.
9
10; CHECK: define hidden void @foo() comdat($x) {
11; CHECK:   ret void
12; CHECK: }
13
14; The private linkage for foo() should be changed to external linkage and
15; hidden visibility added.
16; DELETE: declare hidden void @foo()
17; DELETE-NOT: comdat
18; DELETE: define void @bar() {
19; DELETE:   call void @foo()
20; DELETE:   ret void
21; DELETE: }
22
23$x = comdat any
24
25define private void @foo() comdat($x) {
26  ret void
27}
28define void @bar() {
29  call void @foo()
30  ret void
31}
32