Lines Matching refs:unwind
48 to label %try.cont unwind label %catch.dispatch
51 %0 = catchswitch within none [label %catch.start] unwind to caller
139 to label %try.cont11 unwind label %catch.dispatch
142 %0 = catchswitch within none [label %catch.start] unwind to caller
157 to label %try.cont unwind label %catch.dispatch2
160 %8 = catchswitch within %1 [label %catch.start3] unwind label %ehcleanup9
175 to label %invoke.cont8 unwind label %ehcleanup
183 to label %unreachable unwind label %ehcleanup9
199 cleanupret from %16 unwind label %ehcleanup9
204 cleanupret from %17 unwind to caller
251 to label %try.cont unwind label %catch.dispatch
254 %0 = catchswitch within none [label %catch.start] unwind to caller
270 to label %for.inc unwind label %ehcleanup
286 to label %invoke.cont2 unwind label %terminate
289 cleanupret from %5 unwind to caller
326 to label %try.cont unwind label %catch.dispatch
330 to label %try.cont unwind label %catch.dispatch
333 %0 = catchswitch within none [label %catch.start] unwind to caller
362 to label %try.cont unwind label %catch.dispatch
365 %0 = catchswitch within none [label %catch.start] unwind to caller
378 ; simplify tests and changing the order of basic blocks to cause unwind
382 ; - Call unwind mismatch
383 ; 'call bar''s original unwind destination was 'C0', but after control flow
384 ; linearization, its unwind destination incorrectly becomes 'C1'. We fix this by
386 ; - Catch unwind mismatch
389 ; will instead unwind to C0, an incorrect next EH pad. We wrap the whole
395 ; --- try-delegate starts (catch unwind mismatch)
399 ; --- try-delegate starts (call unwind mismatch)
403 ; --- try-delegate ends (call unwind mismatch)
407 ; --- try-delegate ends (catch unwind mismatch)
415 to label %bb1 unwind label %catch.dispatch0
419 to label %try.cont unwind label %catch.dispatch1
422 %0 = catchswitch within none [label %catch.start0] unwind to caller
431 %4 = catchswitch within none [label %catch.start1] unwind to caller
443 ; 'call bar' and 'call baz''s original unwind destination was the caller, but
444 ; after control flow linearization, their unwind destination incorrectly becomes
449 ; during fixing unwind mismatches.
454 ; --- try-delegate starts (call unwind mismatch)
460 ; --- try-delegate ends (call unwind mismatch)
470 to label %bb1 unwind label %catch.dispatch0
479 %0 = catchswitch within none [label %catch.start0] unwind to caller
492 ; to the caller. IN this case bb1 has two call unwind mismatches: 'call @foo'
497 ; --- try-delegate starts (catch unwind mismatch)
501 ; --- try-delegate starts (call unwind mismatch)
505 ; --- try-delegate ends (call unwind mismatch)
506 ; --- try-delegate starts (call unwind mismatch)
510 ; --- try-delegate ends (call unwind mismatch)
514 ; --- try-delegate ends (catch unwind mismatch)
522 to label %bb1 unwind label %catch.dispatch0
527 to label %try.cont unwind label %catch.dispatch1
530 %0 = catchswitch within none [label %catch.start0] unwind to caller
539 %4 = catchswitch within none [label %catch.start1] unwind to caller
551 ; Similar situation as @test6. Here 'call @qux''s original unwind destination
552 ; was the caller, but after control flow linearization, their unwind destination
563 ; --- try-delegate starts (call unwind mismatch)
568 ; --- try-delegate ends (call unwind mismatch)
577 to label %bb1 unwind label %catch.dispatch0
584 %1 = catchswitch within none [label %catch.start0] unwind to caller
603 to label %bb1 unwind label %catch.dispatch0
624 %0 = catchswitch within none [label %catch.start0] unwind to caller
636 ; We have two call unwind unwind mismatches:
638 ; CFG, when it is supposed to unwind to another EH pad.
640 ; CFG, when it is supposed to unwind to the caller.
641 ; We also have a catch unwind mismatch: If an exception is not caught by the
642 ; first catch because it is a non-C++ exception, it shouldn't unwind to the next
643 ; catch, but it should unwind to the caller.
647 ; --- try-delegate starts (catch unwind mismatch)
651 ; --- try-delegate starts (call unwind mismatch)
655 ; --- try-delegate ends (call unwind mismatch)
658 ; --- try-delegate starts (call unwind mismatch)
662 ; --- try-delegate ends (call unwind mismatch)
665 ; --- try-delegate ends (catch unwind mismatch)
675 to label %bb1 unwind label %catch.dispatch0
679 to label %try.cont unwind label %catch.dispatch1
682 %0 = catchswitch within none [label %catch.start0] unwind to caller
693 %5 = catchswitch within none [label %catch.start1] unwind to caller
711 ; (before 'cont' is sorted) and there should not be any unwind destination
729 %0 = catchswitch within none [label %catch.start] unwind to caller
741 to label %cont unwind label %catch.dispatch
772 to label %invoke.cont unwind label %ehcleanup
784 cleanupret from %0 unwind to caller
800 to label %invoke.cont unwind label %terminate
826 to label %for.inc unwind label %catch.dispatch
829 %0 = catchswitch within none [label %catch.start] unwind to caller
847 to label %invoke.cont2 unwind label %ehcleanup
866 to label %invoke.cont6 unwind label %terminate7
869 cleanupret from %9 unwind to caller
897 to label %for.body unwind label %catch.dispatch
902 to label %for.end unwind label %catch.dispatch
917 %0 = catchswitch within none [label %catch.start] unwind to caller
967 to label %invoke.cont unwind label %catch.dispatch3
973 to label %try.cont8 unwind label %catch.dispatch
976 %0 = catchswitch within none [label %catch.start] unwind label %catch.dispatch3
985 to label %invoke.cont2 unwind label %catch.dispatch3
988 %5 = catchswitch within none [label %catch.start4] unwind to caller
1027 to label %while.end unwind label %catch.dispatch
1030 %0 = catchswitch within none [label %catch.start] unwind to caller
1038 to label %invoke.cont unwind label %ehcleanup
1083 to label %invoke.cont unwind label %ehcleanup
1096 cleanupret from %0 unwind to caller
1116 to label %invoke.cont unwind label %ehcleanup
1120 cleanupret from %0 unwind to caller
1126 ; This tests if invalidated branch destinations after fixing catch unwind
1129 ; catch unwind mismatch:
1163 to label %bb1 unwind label %catch.dispatch0
1167 to label %try.cont unwind label %catch.dispatch1
1170 %0 = catchswitch within none [label %catch.start0] unwind to caller
1182 %4 = catchswitch within none [label %catch.start1] unwind to caller
1227 to label %unreachable unwind label %catch.dispatch
1230 %0 = catchswitch within none [label %catch.start] unwind to caller
1240 to label %invoke.cont unwind label %catch.dispatch4
1244 to label %unreachable unwind label %catch.dispatch4
1247 %4 = catchswitch within none [label %catch.start5] unwind to caller
1257 to label %invoke.cont14 unwind label %catch.dispatch16
1260 %8 = catchswitch within none [label %catch.start17] unwind label %ehcleanup
1276 to label %unreachable unwind label %ehcleanup
1280 to label %invoke.cont24 unwind label %ehcleanup
1290 cleanupret from %12 unwind to caller
1302 to label %invoke.cont unwind label %catch.dispatch
1305 %0 = catchswitch within none [label %catch.start] unwind label %ehcleanup22
1312 to label %unreachable unwind label %catch.dispatch2
1315 %4 = catchswitch within %1 [label %catch.start3] unwind label %ehcleanup
1325 to label %invoke.cont8 unwind label %ehcleanup
1329 to label %unreachable unwind label %catch.dispatch11
1332 %8 = catchswitch within %1 [label %catch.start12] unwind label %ehcleanup
1345 cleanupret from %12 unwind label %ehcleanup22
1349 cleanupret from %13 unwind to caller
1367 ; catch.start2 is the unwind destination of catch.start, it should not be
1377 to label %unreachable unwind label %catch.dispatch
1380 %1 = catchswitch within none [label %catch.start] unwind label %catch.dispatch1
1402 to label %unreachable unwind label %catch.dispatch1
1405 %9 = catchswitch within none [label %catch.start2] unwind to caller
1446 ; But the unwind destination chain is catch.start -> catch.start4 ->
1456 to label %invoke.cont unwind label %catch.dispatch
1460 to label %invoke.cont1 unwind label %catch.dispatch
1464 to label %try.cont18 unwind label %catch.dispatch
1467 %0 = catchswitch within none [label %catch.start12] unwind to caller
1489 %8 = catchswitch within none [label %catch.start4] unwind label %catch.dispatch11
1508 to label %unreachable unwind label %catch.dispatch11
1511 %16 = catchswitch within none [label %catch.start] unwind label %catch.dispatch3
1530 to label %unreachable unwind label %catch.dispatch3
1556 ; contained in (a)'s exception. Because (a)'s unwind destination is (b), (b)'s
1565 to label %unreachable unwind label %catch.dispatch
1568 %1 = catchswitch within none [label %catch.start] unwind label %catch.dispatch1
1587 to label %unreachable unwind label %catch.dispatch1
1590 %9 = catchswitch within none [label %catch.start2] unwind to caller
1613 to label %try.cont16 unwind label %catch.dispatch9
1616 %17 = catchswitch within none [label %catch.start10] unwind to caller
1644 ; Check if the unwind destination mismatch stats are correct
1645 ; NOSORT: 23 wasm-cfg-stackify - Number of call unwind mismatches found
1646 ; NOSORT: 4 wasm-cfg-stackify - Number of catch unwind mismatches found