|  | ; RUN: llvm-extract -func foo -S < %s | FileCheck %s | 
|  | ; RUN: llvm-extract -delete -func foo -S < %s | FileCheck --check-prefix=DELETE %s | 
|  | ; RUN: llvm-as < %s > %t | 
|  | ; RUN: llvm-extract -func foo -S %t | FileCheck %s | 
|  | ; RUN: llvm-extract -delete -func foo -S %t | FileCheck --check-prefix=DELETE %s | 
|  |  | 
|  | ; llvm-extract uses lazy bitcode loading, so make sure it correctly reads | 
|  | ; from bitcode files in addition to assembly files. | 
|  |  | 
|  | ; CHECK: define void @foo() { | 
|  | ; CHECK:   ret void | 
|  | ; CHECK: } | 
|  |  | 
|  | ; The linkonce_odr linkage for foo() should be changed to external linkage. | 
|  | ; DELETE: declare void @foo() | 
|  | ; DELETE: define void @bar() { | 
|  | ; DELETE:   call void @foo() | 
|  | ; DELETE:   ret void | 
|  | ; DELETE: } | 
|  |  | 
|  | define linkonce_odr void @foo() { | 
|  | ret void | 
|  | } | 
|  | define void @bar() { | 
|  | call void @foo() | 
|  | ret void | 
|  | } |