• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc -mtriple=x86_64-pc-windows-msvc -code-model=large -relocation-model=static -o - < %s | FileCheck %s
2
3declare i32 @__CxxFrameHandler3(...)
4
5declare void @bar()
6
7define void @foo() personality i32 (...)* @__CxxFrameHandler3 {
8entry:
9  invoke void @bar()
10    to label %exit unwind label %cleanup
11cleanup:
12  %c = cleanuppad within none []
13  call void @bar() [ "funclet"(token %c) ]
14  cleanupret from %c unwind to caller
15exit:
16  ret void
17}
18
19; CHECK: foo: # @foo
20; CHECK: movabsq $bar, %[[reg:[^ ]*]]
21; CHECK: callq *%[[reg]]
22; CHECK: retq
23
24; CHECK: "?dtor$2@?0?foo@4HA":
25; CHECK: movabsq $bar, %[[reg:[^ ]*]]
26; CHECK: callq *%[[reg]]
27; CHECK: retq                            # CLEANUPRET
28