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
4; Test that linkonce definitions are mapped to weak so that they are not
5; dropped.
6
7; CHECK:      @bar = external global i32
8; CHECK:      define weak i32* @foo() {
9; CHECK-NEXT:  ret i32* @bar
10; CHECK-NEXT: }
11
12; DELETE: @bar = weak global i32 42
13; DELETE: declare i32* @foo()
14
15@bar = linkonce global i32 42
16
17define linkonce i32* @foo() {
18  ret i32* @bar
19}
20
21define void @g() {
22  call i32* @foo()
23  ret void
24}
25