brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · ab6672e Raw
86 lines · plain
1; RUN: sed -e s/.Cxx:// %s | llc -mtriple=x86_64-pc-windows-msvc | FileCheck %s --check-prefixes=CXX2; RUN: sed -e s/.Seh:// %s | llc -mtriple=x86_64-pc-windows-msvc | FileCheck %s --check-prefixes=SEH3; RUN: %if aarch64-registered-target %{ sed -e s/.Cxx:// %s | llc -mtriple=aarch64-pc-windows-msvc | FileCheck %s --check-prefix=CXX %}4; RUN: %if aarch64-registered-target %{ sed -e s/.Seh:// %s | llc -mtriple=aarch64-pc-windows-msvc | FileCheck %s --check-prefix=SEH %}5 6declare i32 @__CxxFrameHandler3(...)7declare i32 @__C_specific_handler(...)8declare void @dummy_filter()9 10declare void @f(i32)11 12;Cxx: define void @test() personality ptr @__CxxFrameHandler3 {13;Seh: define void @test() personality ptr @__C_specific_handler {14entry:15  invoke void @f(i32 1)16          to label %invoke.cont unwind label %catch.dispatch17 18catch.dispatch:19  %cs1 = catchswitch within none [label %catch.body] unwind label %catch.dispatch.220 21catch.body:22;Cxx: %catch = catchpad within %cs1 [ptr null, i32 u0x40, ptr null]23;Seh: %catch = catchpad within %cs1 [ptr @dummy_filter]24  invoke void @f(i32 2) [ "funclet"(token %catch) ]25          to label %unreachable unwind label %terminate26 27terminate:28  %cleanup = cleanuppad within %catch []29  call void @f(i32 3) [ "funclet"(token %cleanup) ]30  unreachable31 32unreachable:33  unreachable34 35invoke.cont:36  ret void37 38catch.dispatch.2:39  %cs2 = catchswitch within none [label %catch.body.2] unwind to caller40 41catch.body.2:42;Cxx: %catch2 = catchpad within %cs2 [ptr null, i32 u0x40, ptr null]43;Seh: %catch2 = catchpad within %cs2 [ptr @dummy_filter]44  unreachable45}46 47; CXX-LABEL: test:48; CXX-LABEL: $ip2state$test:49; CXX-NEXT:   .[[ENTRY:long|word]]   .Lfunc_begin0@IMGREL50; CXX-NEXT:   .[[ENTRY]]   -151; CXX-NEXT:   .[[ENTRY]]   .Ltmp0@IMGREL52; CXX-NEXT:   .[[ENTRY]]   153; CXX-NEXT:   .[[ENTRY]]   .Ltmp1@IMGREL54; CXX-NEXT:   .[[ENTRY]]   -155; CXX-NEXT:   .[[ENTRY]]   "?catch$3@?0?test@4HA"@IMGREL56; CXX-NEXT:   .[[ENTRY]]   257; CXX-NEXT:   .[[ENTRY]]   .Ltmp2@IMGREL58; CXX-NEXT:   .[[ENTRY]]   359; CXX-NEXT:   .[[ENTRY]]   .Ltmp3@IMGREL60; CXX-NEXT:   .[[ENTRY]]   261; CXX-NEXT:   .[[ENTRY]]   "?catch$5@?0?test@4HA"@IMGREL62; CXX-NEXT:   .[[ENTRY]]   463 64; SEH-LABEL: test:65; SEH:        .LBB0_[[CATCH2:[0-9]+]]: {{.*}} %catch.body.266; SEH:        .LBB0_[[CATCH:[0-9]+]]: {{.*}} %catch.body67; SEH-LABEL: .Llsda_begin0:68; SEH-NEXT:    .[[ENTRY:long|word]]   .Ltmp0@IMGREL69; SEH-NEXT:    .[[ENTRY]]   .Ltmp1@IMGREL70; SEH-NEXT:    .[[ENTRY]]   dummy_filter@IMGREL71; SEH-NEXT:    .[[ENTRY]]   .LBB0_[[CATCH]]@IMGREL72; SEH-NEXT:    .[[ENTRY]]   .Ltmp0@IMGREL73; SEH-NEXT:    .[[ENTRY]]   .Ltmp1@IMGREL74; SEH-NEXT:    .[[ENTRY]]   dummy_filter@IMGREL75; SEH-NEXT:    .[[ENTRY]]   .LBB0_[[CATCH2]]@IMGREL76; SEH-NEXT:    .[[ENTRY]]   .Ltmp2@IMGREL77; SEH-NEXT:    .[[ENTRY]]   .Ltmp3@IMGREL78; SEH-NEXT:    .[[ENTRY]]   "?dtor$[[DTOR:[0-9]+]]@?0?test@4HA"@IMGREL79; SEH-NEXT:    .[[ENTRY]]   080; SEH-NEXT:    .[[ENTRY]]   .Ltmp2@IMGREL81; SEH-NEXT:    .[[ENTRY]]   .Ltmp3@IMGREL82; SEH-NEXT:    .[[ENTRY]]   dummy_filter@IMGREL83; SEH-NEXT:    .[[ENTRY]]   .LBB0_[[CATCH2]]@IMGREL84; SEH-NEXT:  .Llsda_end0:85; SEH:        "?dtor$[[DTOR]]@?0?test@4HA"86