1 ; RUN: llvm-dis < %s.bc| FileCheck %s
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
7 @common.var = common global i32 0
8 ; CHECK: @common.var = common global i32 0
10 @appending.var = appending global [8 x i32] undef
11 ; CHECK: @appending.var = appending global [8 x i32] undef
13 @extern_weak.var = extern_weak global i32
14 ; CHECK: @extern_weak.var = extern_weak global i32
16 @private.var = private constant i32 0
17 ; CHECK: @private.var = private constant i32 0
19 @linker_private.var = linker_private constant i32 0
20 ; CHECK: @linker_private.var = private constant i32 0
22 @linker_private_weak.var = linker_private_weak constant i32 0
23 ; CHECK: @linker_private_weak.var = private constant i32 0
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
28 @internal.var = internal constant i32 0
29 ; CHECK: @internal.var = internal constant i32 0
31 @available_externally.var = available_externally constant i32 0
32 ; CHECK: @available_externally.var = available_externally constant i32 0
34 @linkonce.var = linkonce constant i32 0
35 ; CHECK: @linkonce.var = linkonce constant i32 0
37 @weak.var = weak constant i32 0
38 ; CHECK: @weak.var = weak constant i32 0
40 @linkonce_odr.var = linkonce_odr constant i32 0
41 ; CHECK: @linkonce_odr.var = linkonce_odr constant i32 0
43 @linkonce_odr_auto_hide.var = linkonce_odr_auto_hide constant i32 0
44 ; CHECK: @linkonce_odr_auto_hide.var = constant i32 0
46 @external.var = external constant i32
47 ; CHECK: @external.var = external constant i32
49 @dllexport.var = dllexport global i32 0
50 ; CHECK: @dllexport.var = dllexport global i32 0
52 @dllimport.var = dllimport global i32
53 ; CHECK: @dllimport.var = external dllimport global i32
55 define private void @private()
56 ; CHECK: define private void @private
61 define linker_private void @linker_private()
62 ; CHECK: define private void @linker_private
67 define linker_private_weak void @linker_private_weak()
68 ; CHECK: define private void @linker_private_weak
73 define linker_private_weak_def_auto void @linker_private_weak_def_auto()
74 ; CHECK: define void @linker_private_weak_def_auto
79 define internal void @internal()
80 ; CHECK: define internal void @internal
85 define available_externally void @available_externally()
86 ; CHECK: define available_externally void @available_externally
91 define linkonce void @linkonce()
92 ; CHECK: define linkonce void @linkonce
97 define weak void @weak()
98 ; CHECK: define weak void @weak
103 define linkonce_odr void @linkonce_odr()
104 ; CHECK: define linkonce_odr void @linkonce_odr
109 define linkonce_odr_auto_hide void @linkonce_odr_auto_hide()
110 ; CHECK: define void @linkonce_odr_auto_hide
115 define external void @external()
116 ; CHECK: define void @external
121 declare dllimport void @dllimport()
122 ; CHECK: declare dllimport void @dllimport
124 define dllexport void @dllexport()
125 ; CHECK: define dllexport void @dllexport()