blob: 4dc9fe24c198c77d28e645bf1424b8dd9529c635 [file] [log] [blame]
Sean Fertilec70d28b2017-10-26 15:00:26 +00001; RUN: llvm-as < %s | llvm-dis | FileCheck %s
2
3; Tests parsing for the dso_local keyword as well as the serialization/
4; deserialization of the dso_local value on GlobalValues.
5
6@local_global = dso_local global i32 0
7; CHECK: @local_global = dso_local global i32 0
8
9@weak_local_global = weak dso_local global i32 0
10; CHECK: @weak_local_global = weak dso_local global i32 0
11
12@external_local_global = external dso_local global i32
13; CHECK: @external_local_global = external dso_local global i32
14
15@default_local_global = dso_local default global i32 0
16; CHECK: @default_local_global = dso_local global i32 0
17
18@hidden_local_global = dso_local hidden global i32 0
19; CHECK: @hidden_local_global = dso_local hidden global i32 0
20
21@protected_local_global = dso_local protected global i32 0
22; CHECK: @protected_local_global = dso_local protected global i32 0
23
24@local_alias = dso_local alias i32, i32* @local_global
25; CHECK-DAG: @local_alias = dso_local alias i32, i32* @local_global
26
27@preemptable_alias = dso_preemptable alias i32, i32* @hidden_local_global
28; CHECK-DAG: @preemptable_alias = alias i32, i32* @hidden_local_global
29
30@preemptable_ifunc = dso_preemptable ifunc void (), i8* ()* @ifunc_resolver
31; CHECK-DAG: @preemptable_ifunc = ifunc void (), i8* ()* @ifunc_resolver
32declare dso_local default void @default_local()
33; CHECK: declare dso_local void @default_local()
34
35declare dso_local hidden void @hidden_local()
36; CHECK: declare dso_local hidden void @hidden_local()
37
38define dso_local protected void @protected_local() {
39; CHECK: define dso_local protected void @protected_local()
40entry:
41 ret void
42}
43
44define i8* @ifunc_resolver() {
45entry:
46 ret i8* null
47}