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 = private constant i32 0 21 22 @linker_private_weak.var = linker_private_weak constant i32 0 23 ; CHECK: @linker_private_weak.var = private 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 = external 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 private void @linker_private 63 { 64 ret void; 65 } 66 67 define linker_private_weak void @linker_private_weak() 68 ; CHECK: define private 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 } 129