blob: 9db057121e2bfcd991757ac8801d8794005fce44 [file] [edit]
; Test that on AArch64 the personality, LSDA, and TType EH encodings already
; default to 8-byte (sdata8), so --large-eh-encoding leaves them unchanged.
; The flag's only effect on AArch64 is the FDE CFI encoding, which is checked
; in llvm/test/MC/AArch64/large-eh-encoding.s.
; Without the flag, with the flag, and with the flag under PIC all produce the
; same sdata8 encodings (the AArch64 case does not depend on the reloc model).
; RUN: llc -mtriple aarch64-linux-gnu < %s | FileCheck %s
; RUN: llc -mtriple aarch64-linux-gnu --large-eh-encoding < %s | FileCheck %s
; RUN: llc -mtriple aarch64-linux-gnu -relocation-model=pic --large-eh-encoding < %s | FileCheck %s
@_ZTIi = external constant ptr
define i32 @main() uwtable personality ptr @__gxx_personality_v0 {
entry:
invoke void @foo()
to label %try.cont unwind label %lpad
lpad:
%0 = landingpad { ptr, i32 }
catch ptr @_ZTIi
br label %try.cont
try.cont:
ret i32 0
}
declare void @foo()
declare i32 @__gxx_personality_v0(...)
;; AArch64 always uses these regardless of --large-eh-encoding / reloc model:
;; PersonalityEncoding = DW_EH_PE_indirect|DW_EH_PE_pcrel|DW_EH_PE_sdata8 = 156
;; LSDAEncoding = DW_EH_PE_pcrel|DW_EH_PE_sdata8 = 28
; CHECK: .cfi_personality 156, DW.ref.__gxx_personality_v0
; CHECK: .cfi_lsda 28,