blob: 8ffb97d8dd68717e146ca9b352c67c929f64d744 [file] [log] [blame]
; RUN: llc -mtriple=x86_64-pc-windows-msvc -code-model=large -o - < %s | FileCheck %s
declare i32 @__CxxFrameHandler3(...)
declare void @bar()
define void @foo() personality i32 (...)* @__CxxFrameHandler3 {
entry:
invoke void @bar()
to label %exit unwind label %cleanup
cleanup:
%c = cleanuppad within none []
call void @bar() [ "funclet"(token %c) ]
cleanupret from %c unwind to caller
exit:
ret void
}
; CHECK: foo: # @foo
; CHECK: movabsq $bar, %[[reg:[^ ]*]]
; CHECK: callq *%[[reg]]
; CHECK: retq
; CHECK: "?dtor$2@?0?foo@4HA":
; CHECK: movabsq $bar, %[[reg:[^ ]*]]
; CHECK: callq *%[[reg]]
; CHECK: retq # CLEANUPRET