xref: /llvm-project/llvm/test/Transforms/ThinLTOBitcodeWriter/symver.ll (revision 9950ea66203849df25352b8db8f4ea108ef47a5a)
1cee313d2SEric Christopher; RUN: opt -thinlto-bc -thinlto-split-lto-unit -o %t %s
2cee313d2SEric Christopher; RUN: llvm-modextract -n 1 -o - %t | llvm-dis | FileCheck %s
3cee313d2SEric Christopher
4cee313d2SEric Christopher; The target assembly parser is required to parse the symver directives
5cee313d2SEric Christopher; REQUIRES: x86-registered-target
6cee313d2SEric Christopher
7cee313d2SEric Christophertarget triple = "x86_64-unknown-linux-gnu"
8cee313d2SEric Christopher
9cee313d2SEric Christophermodule asm ".symver used, used@VER"
10cee313d2SEric Christophermodule asm ".symver unused, unused@VER"
11cee313d2SEric Christophermodule asm ".symver variable, variable@VER"
12cee313d2SEric Christopher
13cee313d2SEric Christopherdeclare !type !0 void @used()
14cee313d2SEric Christopherdeclare !type !0 void @unused()
15cee313d2SEric Christopher@variable = global i32 0
16cee313d2SEric Christopher
17*9950ea66SNikita Popovdefine ptr @use() {
18cee313d2SEric Christopher  call void @used()
19*9950ea66SNikita Popov  ret ptr @variable
20cee313d2SEric Christopher}
21cee313d2SEric Christopher
22cee313d2SEric Christopher; CHECK: !symvers = !{![[SYMVER:[0-9]+]]}
23cee313d2SEric Christopher; CHECK: ![[SYMVER]] = !{!"used", !"used@VER"}
24cee313d2SEric Christopher
25cee313d2SEric Christopher!0 = !{i64 0, !"_ZTSFvvE"}
26