|
@@ -518,6 +518,11 @@ Block* CFG::AddLabel(Block* block, Stack stack, Location pc, FunctionId function
|
|
|
}
|
|
}
|
|
|
return &*it;
|
|
return &*it;
|
|
|
}
|
|
}
|
|
|
|
|
+ // Make sure we don't insert the same layer twice
|
|
|
|
|
+ const auto label_it{std::ranges::find(function.labels, pc, &Label::address)};
|
|
|
|
|
+ if (label_it != function.labels.end()) {
|
|
|
|
|
+ return label_it->block;
|
|
|
|
|
+ }
|
|
|
Block* const new_block{block_pool.Create(Block{
|
|
Block* const new_block{block_pool.Create(Block{
|
|
|
.begin{pc},
|
|
.begin{pc},
|
|
|
.end{pc},
|
|
.end{pc},
|