From 3758c9016029f54de4ce6f8981d929b0d49df5cd Mon Sep 17 00:00:00 2001 From: AntonMilienkov Date: Tue, 7 May 2024 20:31:05 +0300 Subject: [PATCH] remove prefix fixed --- .../Sapfor_2017/_src/Transformations/checkpoints.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp b/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp index f6906c2..39a9693 100644 --- a/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp +++ b/sapfor/experts/Sapfor_2017/_src/Transformations/checkpoints.cpp @@ -764,7 +764,7 @@ static void processVarBlock(SgStatement* func, SgStatement* firstExec, map& moduleStmts, const map& moduleParamStmts, set& addedModuleParams, const set& commonVariables, SgStatement* proc_moduleF, - set& localVarNoParams, const set& externVars) + set& localVarNoParams, const set& externVars, const size_t prefixLen) { SgStatement* endProcModuleF = proc_moduleF->lastNodeOfStmt(); @@ -775,8 +775,7 @@ static void insertStmtToModule(const map& moduleStmts, con string varNameNoPref = varName; string::size_type pos{}; - pos = varName.find_first_of("_", pos); - varNameNoPref.erase(0, pos + 1); + varNameNoPref.erase(0, pos + prefixLen + 1); if (commonVariables.count(varNameNoPref) == 0 && moduleParamStmts.count(varName) == 0 && externVars.count(varNameNoPref) == 0) { @@ -1215,7 +1214,8 @@ static void processFunctionCallChain(SgStatement* func, const vector& set addedModuleParams; set localVarNoParams; - insertStmtToModule(moduleStmts, moduleParamStmts, addedModuleParams, commonVariables, proc_moduleF, localVarNoParams, externVars); + insertStmtToModule(moduleStmts, moduleParamStmts, addedModuleParams, commonVariables, proc_moduleF, localVarNoParams, + externVars, funcName.size()); const string namelabelSymb = funcFrom->funcName + "_label"; SgSymbol* procLabelSymb = createLabel(namelabelSymb, proc_moduleF); @@ -1397,7 +1397,8 @@ void createCheckpoints(SgFile* file, const map& commonBloc set addedModuleParams; set localVarNoParams; - insertStmtToModule(moduleStmts, moduleParamStmts, addedModuleParams, commonVariables, proc_moduleF, localVarNoParams, externVars); + insertStmtToModule(moduleStmts, moduleParamStmts, addedModuleParams, commonVariables, proc_moduleF, localVarNoParams, + externVars, sizeof(funcName) / sizeof(char) - 1); const vector useOfMods = findUseOfModules(func->lexNext(), firstExec);