fix UB in dom tree builder

This commit is contained in:
2025-06-04 09:18:24 +03:00
parent b454858647
commit c6a0c73287
2 changed files with 4 additions and 8 deletions

View File

@@ -73,13 +73,7 @@ namespace SAPFOR
const std::vector<BasicBlock*>& getNext() const { return next; }
const std::vector<BasicBlock*>& getPrev() const { return prev; }
BasicBlock* getDom() const
{
if (!directDominator)
{
__spf_print(1, "%s\n", "the dominator tree was built with an error or was not built at all");
printInternalError(convertFileName(__FILE__).c_str(), __LINE__);
}
{
return directDominator;
}

View File

@@ -64,6 +64,8 @@ namespace SAPFOR {
int w = vertex[i];
for (BasicBlock* v : vertices[w]->getPrev()) {
if (dfs_num[v] == -1)
continue;
int u = Eval(dfs_num[v]);
if (semi[u] < semi[w])
@@ -97,4 +99,4 @@ namespace SAPFOR {
void buildDominatorTree(std::vector<BasicBlock*>& blocks) {
DominatorFinder finder(blocks);
}
}
}