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 55define private void @private() 56; CHECK: define private void @private 57{ 58 ret void; 59} 60 61define linker_private void @linker_private() 62; CHECK: define private void @linker_private 63{ 64 ret void; 65} 66 67define linker_private_weak void @linker_private_weak() 68; CHECK: define private void @linker_private_weak 69{ 70 ret void; 71} 72 73define 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 79define internal void @internal() 80; CHECK: define internal void @internal 81{ 82 ret void; 83} 84 85define available_externally void @available_externally() 86; CHECK: define available_externally void @available_externally 87{ 88 ret void; 89} 90 91define linkonce void @linkonce() 92; CHECK: define linkonce void @linkonce 93{ 94 ret void; 95} 96 97define weak void @weak() 98; CHECK: define weak void @weak 99{ 100 ret void; 101} 102 103define linkonce_odr void @linkonce_odr() 104; CHECK: define linkonce_odr void @linkonce_odr 105{ 106 ret void; 107} 108 109define linkonce_odr_auto_hide void @linkonce_odr_auto_hide() 110; CHECK: define void @linkonce_odr_auto_hide 111{ 112 ret void; 113} 114 115define external void @external() 116; CHECK: define void @external 117{ 118 ret void; 119} 120 121declare dllimport void @dllimport() 122; CHECK: declare dllimport void @dllimport 123 124define dllexport void @dllexport() 125; CHECK: define dllexport void @dllexport() 126{ 127 ret void; 128} 129