Ensure bitcode encoding of linkage types stays stable. Patch by Boaz Ouriel
[oota-llvm.git] / test / Bitcode / linkage-types-3.2.ll
1 ; RUN:  llvm-dis < %s.bc| FileCheck %s
2
3 ; linkage-types-3.2.ll.bc was generated by passing this file to llvm-as-3.2
4 ; The test checks that LLVM does not silently misread linkage types of
5 ; older bitcode files.
6
7 @common.var = common global i32 0
8 ; CHECK: @common.var = common global i32 0
9
10 @appending.var = appending global [8 x i32] undef
11 ; CHECK: @appending.var = appending global [8 x i32] undef
12
13 @extern_weak.var = extern_weak global i32
14 ; CHECK: @extern_weak.var = extern_weak global i32
15
16 @private.var = private constant i32 0
17 ; CHECK: @private.var = private constant i32 0
18
19 @linker_private.var = linker_private constant i32 0
20 ; CHECK: @linker_private.var = linker_private constant i32 0
21
22 @linker_private_weak.var = linker_private_weak constant i32 0
23 ; CHECK: @linker_private_weak.var = linker_private_weak constant i32 0
24
25 @linker_private_weak_def_auto.var = linker_private_weak_def_auto constant i32 0
26 ; CHECK: @linker_private_weak_def_auto.var = constant i32 0
27
28 @internal.var = internal constant i32 0
29 ; CHECK: @internal.var = internal constant i32 0
30
31 @available_externally.var = available_externally constant i32 0
32 ; CHECK: @available_externally.var = available_externally constant i32 0
33
34 @linkonce.var = linkonce constant i32 0
35 ; CHECK: @linkonce.var = linkonce constant i32 0
36
37 @weak.var = weak constant i32 0
38 ; CHECK: @weak.var = weak constant i32 0
39
40 @linkonce_odr.var = linkonce_odr constant i32 0
41 ; CHECK: @linkonce_odr.var = linkonce_odr constant i32 0
42
43 @linkonce_odr_auto_hide.var = linkonce_odr_auto_hide constant i32 0
44 ; CHECK: @linkonce_odr_auto_hide.var = constant i32 0
45
46 @external.var = external constant i32
47 ; CHECK: @external.var = external constant i32
48
49 @dllexport.var = dllexport global i32 0
50 ; CHECK: @dllexport.var = dllexport global i32 0
51
52 @dllimport.var = dllimport global i32
53 ; CHECK: @dllimport.var = dllimport global i32
54
55 define private void @private()
56 ; CHECK: define private void @private
57 {
58   ret void;
59 }
60
61 define linker_private void @linker_private()
62 ; CHECK: define linker_private void @linker_private
63 {
64   ret void;
65 }
66
67 define linker_private_weak void @linker_private_weak()
68 ; CHECK: define linker_private_weak void @linker_private_weak
69 {
70   ret void;
71 }
72
73 define linker_private_weak_def_auto void @linker_private_weak_def_auto()
74 ; CHECK: define void @linker_private_weak_def_auto
75 {
76   ret void;
77 }
78
79 define internal void @internal()
80 ; CHECK: define internal void @internal
81 {
82   ret void;
83 }
84
85 define available_externally void @available_externally()
86 ; CHECK: define available_externally void @available_externally
87 {
88   ret void;
89 }
90
91 define linkonce void @linkonce()
92 ; CHECK: define linkonce void @linkonce
93 {
94   ret void;
95 }
96
97 define weak void @weak()
98 ; CHECK: define weak void @weak
99 {
100   ret void;
101 }
102
103 define linkonce_odr void @linkonce_odr()
104 ; CHECK: define linkonce_odr void @linkonce_odr
105 {
106   ret void;
107 }
108
109 define linkonce_odr_auto_hide void @linkonce_odr_auto_hide()
110 ; CHECK: define void @linkonce_odr_auto_hide
111 {
112   ret void;
113 }
114
115 define external void @external()
116 ; CHECK: define void @external
117 {
118   ret void;
119 }
120
121 declare dllimport void @dllimport()
122 ; CHECK: declare dllimport void @dllimport
123
124 define dllexport void @dllexport()
125 ; CHECK: define dllexport void @dllexport()
126 {
127   ret void;
128 }