55 lines · plain
1; RUN: llc -mtriple=x86_64-pc-windows-msvc < %s | FileCheck %s2; RUN: %if aarch64-registered-target %{ llc -mtriple=aarch64-pc-windows-msvc < %s | FileCheck %s %}3 4; Function Attrs: uwtable5define void @f() #0 personality ptr @__CxxFrameHandler3 {6entry:7 invoke void @g()8 to label %try.cont unwind label %catch.dispatch9 10catch.dispatch: ; preds = %entry11 %0 = catchswitch within none [label %catch] unwind label %ehcleanup12 13catch: ; preds = %catch.dispatch14 %1 = catchpad within %0 [ptr null, i32 64, ptr null]15 invoke void @g() [ "funclet"(token %1) ]16 to label %dtor.exit unwind label %catch.dispatch.i17 18catch.dispatch.i: ; preds = %catch19 %2 = catchswitch within %1 [label %catch.i] unwind to caller20 21catch.i: ; preds = %catch.dispatch.i22 %3 = catchpad within %2 [ptr null, i32 64, ptr null]23 catchret from %3 to label %dtor.exit24 25dtor.exit:26 catchret from %1 to label %try.cont27 28try.cont:29 ret void30 31ehcleanup: ; preds = %catch.dispatch32 %4 = cleanuppad within none []33 call void @dtor() #1 [ "funclet"(token %4) ]34 cleanupret from %4 unwind to caller35}36 37declare void @g()38 39declare i32 @__CxxFrameHandler3(...)40 41; Function Attrs: nounwind42declare void @dtor() #143 44attributes #0 = { uwtable }45attributes #1 = { nounwind }46 47; CHECK-LABEL: $ip2state$f:48; CHECK: -149; CHECK: 150; CHECK: -151; CHECK: 452; CHECK: 253; CHECK: 354; CHECK: 255