blob: 08675d8bff318e58e9ef45f77d54f9e018307c4d [file] [log] [blame]
Dan Gohman0d2c07c2010-09-23 00:33:13 +00001; 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
Rafael Espindola9fbc0402018-01-18 02:08:23 +000010; CHECK: define hidden void @foo() comdat($x) {
Dan Gohman0d2c07c2010-09-23 00:33:13 +000011; CHECK: ret void
12; CHECK: }
Bob Wilson3aecb152010-09-23 17:25:06 +000013
Rafael Espindola56183fb2012-10-29 01:59:03 +000014; The private linkage for foo() should be changed to external linkage and
15; hidden visibility added.
Rafael Espindola9fbc0402018-01-18 02:08:23 +000016; DELETE: declare hidden void @foo()
Reid Klecknerfc0f9382015-07-06 18:48:02 +000017; DELETE-NOT: comdat
Dan Gohman0d2c07c2010-09-23 00:33:13 +000018; DELETE: define void @bar() {
Bob Wilson3aecb152010-09-23 17:25:06 +000019; DELETE: call void @foo()
Dan Gohman0d2c07c2010-09-23 00:33:13 +000020; DELETE: ret void
21; DELETE: }
22
Reid Klecknerfc0f9382015-07-06 18:48:02 +000023$x = comdat any
24
25define private void @foo() comdat($x) {
Dan Gohman0d2c07c2010-09-23 00:33:13 +000026 ret void
27}
28define void @bar() {
Bob Wilson3aecb152010-09-23 17:25:06 +000029 call void @foo()
Dan Gohman0d2c07c2010-09-23 00:33:13 +000030 ret void
31}