From 0b8d2fb62f65027b1ece7d26fcb62583a49d1ae0 Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Mon, 14 Mar 2022 22:57:49 +0330 Subject: LibJS/Bytecode: Replace merged block references before copying them --- Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp b/Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp index a97cad2c28..e80d7f7029 100644 --- a/Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp +++ b/Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp @@ -135,6 +135,8 @@ void MergeBlocks::perform(PassPipelineExecutable& executable) auto new_block = BasicBlock::create(builder.build(), size); auto& block = *new_block; + auto first_successor_position = replace_blocks(successors, *new_block); + VERIFY(first_successor_position.has_value()); size_t last_successor_index = successors.size() - 1; for (size_t i = 0; i < successors.size(); ++i) { @@ -152,8 +154,6 @@ void MergeBlocks::perform(PassPipelineExecutable& executable) block.grow(copy_end); } - auto first_successor_position = replace_blocks(successors, *new_block); - VERIFY(first_successor_position.has_value()); executable.executable.basic_blocks.insert(*first_successor_position, move(new_block)); } -- cgit v1.2.3