fix UB in dom tree builder
This commit is contained in:
@@ -74,12 +74,6 @@ namespace SAPFOR
|
|||||||
const std::vector<BasicBlock*>& getPrev() const { return prev; }
|
const std::vector<BasicBlock*>& getPrev() const { return prev; }
|
||||||
BasicBlock* getDom() const
|
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;
|
return directDominator;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ namespace SAPFOR {
|
|||||||
int w = vertex[i];
|
int w = vertex[i];
|
||||||
|
|
||||||
for (BasicBlock* v : vertices[w]->getPrev()) {
|
for (BasicBlock* v : vertices[w]->getPrev()) {
|
||||||
|
if (dfs_num[v] == -1)
|
||||||
|
continue;
|
||||||
int u = Eval(dfs_num[v]);
|
int u = Eval(dfs_num[v]);
|
||||||
|
|
||||||
if (semi[u] < semi[w])
|
if (semi[u] < semi[w])
|
||||||
|
|||||||
Reference in New Issue
Block a user