mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 15:13:49 -04:00
[WebAssembly] Handle END_LOOP in unreachable BB in CFGStackify
Summary: This fixes crashes when a BB in which an END_LOOP is to be placed is unreachable and does not have any predecessors. Fixes PR41307. Reviewers: dschuff Subscribers: yurydelendik, sbc100, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60004 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357303 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -411,7 +411,9 @@ void WebAssemblyCFGStackify::placeLoopMarker(MachineBasicBlock &MBB) {
|
||||
// Mark the end of the loop (using arbitrary debug location that branched to
|
||||
// the loop end as its location).
|
||||
InsertPos = getEarliestInsertPos(AfterLoop, BeforeSet, AfterSet);
|
||||
DebugLoc EndDL = (*AfterLoop->pred_rbegin())->findBranchDebugLoc();
|
||||
DebugLoc EndDL = AfterLoop->pred_empty()
|
||||
? DebugLoc()
|
||||
: (*AfterLoop->pred_rbegin())->findBranchDebugLoc();
|
||||
MachineInstr *End =
|
||||
BuildMI(*AfterLoop, InsertPos, EndDL, TII.get(WebAssembly::END_LOOP));
|
||||
registerScope(Begin, End);
|
||||
|
||||
Reference in New Issue
Block a user