Ensure bitcode encoding of calling conventions stays stable. Patch by Boaz Ouriel.
authorMichael Kuperstein <michael.m.kuperstein@intel.com>
Sun, 22 Dec 2013 07:51:53 +0000 (07:51 +0000)
committerMichael Kuperstein <michael.m.kuperstein@intel.com>
Sun, 22 Dec 2013 07:51:53 +0000 (07:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197873 91177308-0d34-0410-b5e6-96231b3b80d8

test/Bitcode/calling-conventions.3.2.ll [new file with mode: 0644]
test/Bitcode/calling-conventions.3.2.ll.bc [new file with mode: 0644]

diff --git a/test/Bitcode/calling-conventions.3.2.ll b/test/Bitcode/calling-conventions.3.2.ll
new file mode 100644 (file)
index 0000000..aca9efd
--- /dev/null
@@ -0,0 +1,150 @@
+; RUN:  llvm-dis < %s.bc| FileCheck %s
+
+; calling-conventions.3.2.ll.bc was generated by passing this file to llvm-as-3.2.
+; The test checks that LLVM does not silently misread calling conventions of
+; older bitcode files.
+
+declare ccc void @ccc()
+; CHECK: declare void @ccc
+
+declare fastcc void @fastcc()
+; CHECK: declare fastcc void @fastcc
+
+declare coldcc void @coldcc()
+; CHECK: declare coldcc void @coldcc
+
+declare cc10 void @cc10()
+; CHECK: declare cc10 void @cc10
+
+declare spir_kernel void @spir_kernel()
+; CHECK: declare spir_kernel void @spir_kernel
+
+declare spir_func void @spir_func()
+; CHECK: declare spir_func void @spir_func
+
+declare intel_ocl_bicc void @intel_ocl_bicc()
+; CHECK: declare intel_ocl_bicc void @intel_ocl_bicc
+
+declare x86_stdcallcc void @x86_stdcallcc()
+; CHECK: declare x86_stdcallcc void @x86_stdcallcc 
+
+declare x86_fastcallcc void @x86_fastcallcc()
+; CHECK: declare x86_fastcallcc void @x86_fastcallcc 
+
+declare x86_thiscallcc void @x86_thiscallcc()
+; CHECK: declare x86_thiscallcc void @x86_thiscallcc
+
+declare arm_apcscc void @arm_apcscc()
+; CHECK: declare arm_apcscc void @arm_apcscc
+
+declare arm_aapcscc void @arm_aapcscc()
+; CHECK: declare arm_aapcscc void @arm_aapcscc
+
+declare arm_aapcs_vfpcc void @arm_aapcs_vfpcc()
+; CHECK: declare arm_aapcs_vfpcc void @arm_aapcs_vfpcc
+
+declare msp430_intrcc void @msp430_intrcc()
+; CHECK: declare msp430_intrcc void @msp430_intrcc
+
+declare ptx_kernel void @ptx_kernel()
+; CHECK: declare ptx_kernel void @ptx_kernel
+
+declare ptx_device void @ptx_device()
+; CHECK: declare ptx_device void @ptx_device
+
+define void @call_ccc() { 
+; CHECK: call void @ccc
+  call ccc void @ccc()
+  ret void
+}
+
+define void @call_fastcc() { 
+; CHECK: call fastcc void @fastcc
+  call fastcc void @fastcc()
+  ret void
+}
+
+define void @call_coldcc() { 
+; CHECK: call coldcc void @coldcc
+  call coldcc void @coldcc()
+  ret void
+}
+
+define void @call_cc10 () { 
+; CHECK: call cc10 void @cc10 
+  call cc10 void @cc10 ()
+  ret void
+}
+
+define void @call_spir_kernel() { 
+; CHECK: call spir_kernel void @spir_kernel
+  call spir_kernel void @spir_kernel()
+  ret void
+}
+
+define void @call_spir_func() { 
+; CHECK: call spir_func void @spir_func
+  call spir_func void @spir_func()
+  ret void
+}
+
+define void @call_intel_ocl_bicc() { 
+; CHECK: call intel_ocl_bicc void @intel_ocl_bicc 
+  call intel_ocl_bicc void @intel_ocl_bicc()
+  ret void
+}
+
+define void @call_x86_stdcallcc() { 
+; CHECK: call x86_stdcallcc void @x86_stdcallcc
+  call x86_stdcallcc void @x86_stdcallcc()
+  ret void
+}
+
+define void @call_x86_fastcallcc() { 
+; CHECK: call x86_fastcallcc void @x86_fastcallcc
+  call x86_fastcallcc void @x86_fastcallcc()
+  ret void
+}
+
+define void @call_x86_thiscallcc() { 
+; CHECK: call x86_thiscallcc void @x86_thiscallcc 
+  call x86_thiscallcc void @x86_thiscallcc()
+  ret void
+}
+
+define void @call_arm_apcscc() { 
+; CHECK: call arm_apcscc void @arm_apcscc
+  call arm_apcscc void @arm_apcscc()
+  ret void
+}
+
+define void @call_arm_aapcscc() { 
+; CHECK: call arm_aapcscc void @arm_aapcscc
+  call arm_aapcscc void @arm_aapcscc()
+  ret void
+}
+
+define void @call_arm_aapcs_vfpcc() { 
+; CHECK: call arm_aapcs_vfpcc void @arm_aapcs_vfpcc
+  call arm_aapcs_vfpcc void @arm_aapcs_vfpcc()
+  ret void
+}
+
+define void @call_msp430_intrcc() { 
+; CHECK: call msp430_intrcc void @msp430_intrcc
+  call msp430_intrcc void @msp430_intrcc()
+  ret void
+}
+
+define void @call_ptx_kernel() { 
+; CHECK: call ptx_kernel void @ptx_kernel
+  call ptx_kernel void @ptx_kernel()
+  ret void
+}
+
+define void @call_ptx_device() { 
+; CHECK: call ptx_device void @ptx_device
+  call ptx_device void @ptx_device()
+  ret void
+}
+
diff --git a/test/Bitcode/calling-conventions.3.2.ll.bc b/test/Bitcode/calling-conventions.3.2.ll.bc
new file mode 100644 (file)
index 0000000..b3fad96
Binary files /dev/null and b/test/Bitcode/calling-conventions.3.2.ll.bc differ