diff --git a/sapfor/experts/Sapfor_2017/_src/Transformations/private_removing.cpp b/sapfor/experts/Sapfor_2017/_src/Transformations/private_removing.cpp index 58bb712..fe6278c 100644 --- a/sapfor/experts/Sapfor_2017/_src/Transformations/private_removing.cpp +++ b/sapfor/experts/Sapfor_2017/_src/Transformations/private_removing.cpp @@ -354,8 +354,9 @@ static FuncInfo* getCurrentFunc(SgStatement* stmt, const map& vars) { if (stmt == nullptr) @@ -364,7 +365,7 @@ static void fillIterationVars(SgStatement* stmt, SgStatement* outerLoopStmt, vec if (stmt->variant() == FOR_NODE) vars.push_back(((SgForStmt*)stmt)->doName()); - if (stmt->id() != outerLoopStmt->id()) + if (stmt != outerLoopStmt) fillIterationVars(stmt->controlParent(), outerLoopStmt, vars); } @@ -2100,7 +2101,7 @@ static bool checkDefUsePair(Context* ctx, const DefUseStmtsPair& defUse, const C } vector iterationVars{}; - fillIterationVars(defUse.second, ctx->loopStmt, iterationVars); + fillIterationVars(defUse.second, nullptr, iterationVars); auto defInsAndBlock = getInstructionAndBlockByStatement(CFGraph, defUse.first); const auto& defRD_In = defInsAndBlock.second->getRD_In();