llvm.org GIT mirror llvm / release_50 test / CodeGen / X86 / gnu-seh-nolpads.ll
release_50

Tree @release_50 (Download .tar.gz)

gnu-seh-nolpads.ll @release_50raw · history · blame

; RUN: llc -mtriple=x86_64-windows-gnu < %s | FileCheck %s

declare void @throwit()
declare void @__gxx_personality_seh0(...)
declare void @__gcc_personality_seh0(...)

define void @use_gxx_seh()
    personality void (...)* @__gxx_personality_seh0 {
entry:
  call void @throwit()
  unreachable
}

; CHECK-LABEL: use_gxx_seh:
; CHECK: .seh_proc use_gxx_seh
; CHECK-NOT: .seh_handler __gxx_personality_seh0
; CHECK: callq throwit
; CHECK: .seh_handlerdata
; CHECK: .seh_endproc

define void @use_gcc_seh()
    personality void (...)* @__gcc_personality_seh0 {
entry:
  call void @throwit()
  unreachable
}

; CHECK-LABEL: use_gcc_seh:
; CHECK: .seh_proc use_gcc_seh
; CHECK-NOT: .seh_handler __gcc_personality_seh0
; CHECK: callq throwit
; CHECK: .seh_handlerdata
; CHECK: .seh_endproc