[llvm] r196042 - Ensure bitcode encoding of linkage types stays stable. Patch by Boaz Ouriel

Michael Kuperstein michael.m.kuperstein at intel.com
Sun Dec 1 02:16:36 PST 2013


Author: mkuper
Date: Sun Dec  1 04:16:35 2013
New Revision: 196042

URL: http://llvm.org/viewvc/llvm-project?rev=196042&view=rev
Log:
Ensure bitcode encoding of linkage types stays stable. Patch by Boaz Ouriel

Added:
    llvm/trunk/test/Bitcode/linkage-types-3.2.ll
    llvm/trunk/test/Bitcode/linkage-types-3.2.ll.bc   (with props)

Added: llvm/trunk/test/Bitcode/linkage-types-3.2.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/linkage-types-3.2.ll?rev=196042&view=auto
==============================================================================
--- llvm/trunk/test/Bitcode/linkage-types-3.2.ll (added)
+++ llvm/trunk/test/Bitcode/linkage-types-3.2.ll Sun Dec  1 04:16:35 2013
@@ -0,0 +1,128 @@
+; RUN:  llvm-dis < %s.bc| FileCheck %s
+
+; linkage-types-3.2.ll.bc was generated by passing this file to llvm-as-3.2
+; The test checks that LLVM does not silently misread linkage types of
+; older bitcode files.
+
+ at common.var = common global i32 0
+; CHECK: @common.var = common global i32 0
+
+ at appending.var = appending global [8 x i32] undef
+; CHECK: @appending.var = appending global [8 x i32] undef
+
+ at extern_weak.var = extern_weak global i32
+; CHECK: @extern_weak.var = extern_weak global i32
+
+ at private.var = private constant i32 0
+; CHECK: @private.var = private constant i32 0
+
+ at linker_private.var = linker_private constant i32 0
+; CHECK: @linker_private.var = linker_private constant i32 0
+
+ at linker_private_weak.var = linker_private_weak constant i32 0
+; CHECK: @linker_private_weak.var = linker_private_weak constant i32 0
+
+ at linker_private_weak_def_auto.var = linker_private_weak_def_auto constant i32 0
+; CHECK: @linker_private_weak_def_auto.var = constant i32 0
+
+ at internal.var = internal constant i32 0
+; CHECK: @internal.var = internal constant i32 0
+
+ at available_externally.var = available_externally constant i32 0
+; CHECK: @available_externally.var = available_externally constant i32 0
+
+ at linkonce.var = linkonce constant i32 0
+; CHECK: @linkonce.var = linkonce constant i32 0
+
+ at weak.var = weak constant i32 0
+; CHECK: @weak.var = weak constant i32 0
+
+ at linkonce_odr.var = linkonce_odr constant i32 0
+; CHECK: @linkonce_odr.var = linkonce_odr constant i32 0
+
+ at linkonce_odr_auto_hide.var = linkonce_odr_auto_hide constant i32 0
+; CHECK: @linkonce_odr_auto_hide.var = constant i32 0
+
+ at external.var = external constant i32
+; CHECK: @external.var = external constant i32
+
+ at dllexport.var = dllexport global i32 0
+; CHECK: @dllexport.var = dllexport global i32 0
+
+ at dllimport.var = dllimport global i32
+; CHECK: @dllimport.var = dllimport global i32
+
+define private void @private()
+; CHECK: define private void @private
+{
+  ret void;
+}
+
+define linker_private void @linker_private()
+; CHECK: define linker_private void @linker_private
+{
+  ret void;
+}
+
+define linker_private_weak void @linker_private_weak()
+; CHECK: define linker_private_weak void @linker_private_weak
+{
+  ret void;
+}
+
+define linker_private_weak_def_auto void @linker_private_weak_def_auto()
+; CHECK: define void @linker_private_weak_def_auto
+{
+  ret void;
+}
+
+define internal void @internal()
+; CHECK: define internal void @internal
+{
+  ret void;
+}
+
+define available_externally void @available_externally()
+; CHECK: define available_externally void @available_externally
+{
+  ret void;
+}
+
+define linkonce void @linkonce()
+; CHECK: define linkonce void @linkonce
+{
+  ret void;
+}
+
+define weak void @weak()
+; CHECK: define weak void @weak
+{
+  ret void;
+}
+
+define linkonce_odr void @linkonce_odr()
+; CHECK: define linkonce_odr void @linkonce_odr
+{
+  ret void;
+}
+
+define linkonce_odr_auto_hide void @linkonce_odr_auto_hide()
+; CHECK: define void @linkonce_odr_auto_hide
+{
+  ret void;
+}
+
+define external void @external()
+; CHECK: define void @external
+{
+  ret void;
+}
+
+declare dllimport void @dllimport()
+; CHECK: declare dllimport void @dllimport
+
+define dllexport void @dllexport()
+; CHECK: define dllexport void @dllexport()
+{
+  ret void;
+}

Added: llvm/trunk/test/Bitcode/linkage-types-3.2.ll.bc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/linkage-types-3.2.ll.bc?rev=196042&view=auto
==============================================================================
Binary file - no diff available.

Propchange: llvm/trunk/test/Bitcode/linkage-types-3.2.ll.bc
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream





More information about the llvm-commits mailing list