summaryrefslogtreecommitdiff
path: root/test/DebugInfo/SystemZ/eh_frame_personality.ll
diff options
context:
space:
mode:
authorUlrich Weigand <ulrich.weigand@de.ibm.com>2013-05-06 16:18:29 +0000
committerUlrich Weigand <ulrich.weigand@de.ibm.com>2013-05-06 16:18:29 +0000
commit25cf4ebd50ca150468ef51697ea3587cacb87460 (patch)
treeb8b7c6361e23d6fb59023ee9b8fd46a917cc68ed /test/DebugInfo/SystemZ/eh_frame_personality.ll
parentb503b49b5105b6aad7d2a015468b84b0f64dfe8e (diff)
downloadllvm-25cf4ebd50ca150468ef51697ea3587cacb87460.tar.gz
llvm-25cf4ebd50ca150468ef51697ea3587cacb87460.tar.bz2
llvm-25cf4ebd50ca150468ef51697ea3587cacb87460.tar.xz
[SystemZ] Add DebugInfo test cases
This adds all DebugInfo tests for the SystemZ target. This version of the patch incorporates feedback from reviews by Eric Christopher and Rafael Espindola. Thanks to all reviewers! Patch by Richard Sandiford. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181205 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/DebugInfo/SystemZ/eh_frame_personality.ll')
-rw-r--r--test/DebugInfo/SystemZ/eh_frame_personality.ll43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/DebugInfo/SystemZ/eh_frame_personality.ll b/test/DebugInfo/SystemZ/eh_frame_personality.ll
new file mode 100644
index 0000000000..e5dbb15bc0
--- /dev/null
+++ b/test/DebugInfo/SystemZ/eh_frame_personality.ll
@@ -0,0 +1,43 @@
+; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck -check-prefix=CHECK-FUNC %s
+; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck -check-prefix=CHECK-ET %s
+; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu | FileCheck -check-prefix=CHECK-REF %s
+
+declare i32 @__gxx_personality_v0(...)
+
+declare void @bar()
+
+define i64 @foo(i64 %lhs, i64 %rhs) {
+ invoke void @bar() to label %end unwind label %clean
+end:
+ ret i64 0
+
+clean:
+ %tst = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) cleanup
+ ret i64 42
+}
+
+; CHECK-FUNC: foo:
+; CHECK-FUNC: .cfi_startproc
+; CHECK-FUNC: .cfi_personality 155, DW.ref.__gxx_personality_v0
+; CHECK-FUNC: .cfi_lsda 27, .Lexception0
+; CHECK-FUNC: stmg %r14, %r15, 112(%r15)
+; CHECK-FUNC: .cfi_offset %r14, -48
+; CHECK-FUNC: .cfi_offset %r15, -40
+; CHECK-FUNC: aghi %r15, -160
+; CHECK-FUNC: .cfi_def_cfa_offset 320
+; ...main function...
+; CHECK-FUNC: .cfi_endproc
+;
+; CHECK-ET: .section .gcc_except_table,"a",@progbits
+; CHECK-ET-NEXT: .align 4
+; CHECK-ET-NEXT: GCC_except_table0:
+; CHECK-ET-NEXT: .Lexception0:
+;
+; CHECK-REF: .hidden DW.ref.__gxx_personality_v0
+; CHECK-REF: .weak DW.ref.__gxx_personality_v0
+; CHECK-REF: .section .data.DW.ref.__gxx_personality_v0,"aGw",@progbits,DW.ref.__gxx_personality_v0,comdat
+; CHECK-REF-NEXT: .align 8
+; CHECK-REF-NEXT: .type DW.ref.__gxx_personality_v0,@object
+; CHECK-REF-NEXT: .size DW.ref.__gxx_personality_v0, 8
+; CHECK-REF-NEXT: DW.ref.__gxx_personality_v0:
+; CHECK-REF-NEXT: .quad __gxx_personality_v0