blob: 3ad511bad430bfa3667ffb579fe33efdc7ab12a3 [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
Rafael Espindola9fbc0402018-01-18 02:08:23 +000018@hidden_local_global = hidden global i32 0
19; CHECK: @hidden_local_global = hidden global i32 0
Sean Fertilec70d28b2017-10-26 15:00:26 +000020
Rafael Espindola9fbc0402018-01-18 02:08:23 +000021@protected_local_global = protected global i32 0
22; CHECK: @protected_local_global = protected global i32 0
Sean Fertilec70d28b2017-10-26 15:00:26 +000023
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
Rafael Espindola9fbc0402018-01-18 02:08:23 +000035declare hidden void @hidden_local()
36; CHECK: declare hidden void @hidden_local()
Sean Fertilec70d28b2017-10-26 15:00:26 +000037
Rafael Espindola9fbc0402018-01-18 02:08:23 +000038define protected void @protected_local() {
39; CHECK: define protected void @protected_local()
Sean Fertilec70d28b2017-10-26 15:00:26 +000040entry:
41 ret void
42}
43
44define i8* @ifunc_resolver() {
45entry:
46 ret i8* null
47}