Skip to content

Commit

Permalink
More test case for r208715.
Browse files Browse the repository at this point in the history
The commit r208166 will cause some regression on ARM EHABI.
This fix has been committed in r208715, and an assertion failure
test case has been committed in r208770.

This commit further extends the unittest so that the actual
value in the handlerdata will be checked.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208790 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
loganchien committed May 14, 2014
1 parent 202be06 commit bb5d9ac
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions test/CodeGen/ARM/ehabi-handlerdata.ll
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
; ARM EHABI test for the handlerdata.

; This test case checks whether the handlerdata for exception
; handling is generated properly.
;
; (1) The handlerdata must not be empty.
; (2) LPStartEncoding == DW_EH_PE_omit
; (3) TTypeEncoding == DW_EH_PE_absptr
; (4) CallSiteEncoding == DW_EH_PE_udata4

; RUN: llc -mtriple arm-unknown-linux-gnueabi -filetype=asm -o - %s \
; RUN: | FileCheck %s

; RUN: llc -mtriple arm-unknown-linux-gnueabi -filetype=asm -o - %s \
; RUN: -relocation-model=pic \
; RUN: | FileCheck %s

declare void @throw_exception()

declare i32 @__gxx_personality_v0(...)

declare i8* @__cxa_begin_catch(i8*)

declare void @__cxa_end_catch()

define void @test1() {
entry:
invoke void @throw_exception() to label %try.cont unwind label %lpad

lpad:
%0 = landingpad { i8*, i32 } personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*)
catch i8* null
%1 = extractvalue { i8*, i32 } %0, 0
%2 = tail call i8* @__cxa_begin_catch(i8* %1)
tail call void @__cxa_end_catch()
br label %try.cont

try.cont:
ret void
}

; CHECK: .globl test1
; CHECK: .align 2
; CHECK: .type test1,%function
; CHECK-LABEL: test1:
; CHECK: .fnstart
; CHECK: .personality __gxx_personality_v0
; CHECK: .handlerdata
; CHECK: .align 2
; CHECK-LABEL: GCC_except_table0:
; CHECK-LABEL: .Lexception0:
; CHECK: .byte 255 @ @LPStart Encoding = omit
; CHECK: .byte 0 @ @TType Encoding = absptr
; CHECK: .asciz
; CHECK: .byte 3 @ Call site Encoding = udata4
; CHECK: .long
; CHECK: .long
; CHECK: .long
; CHECK: .fnend

0 comments on commit bb5d9ac

Please sign in to comment.