diff --git a/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp b/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp index 887b843..323d30b 100644 --- a/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp +++ b/sapfor/experts/Sapfor_2017/_src/Transformations/dead_code.cpp @@ -574,13 +574,17 @@ int removeDeadCode(SgStatement* func, break; } - + bool mainRemoved = false; for (auto& rem : remove) { __spf_print(PRINT_USELESS_STATEMENTS, "[Useless block statement on line %d and file %s]\n", rem->lineNumber(), rem->fileName()); rem->deleteStmt(); + if (rem == start) + mainRemoved = true; } countOfTransform += remove.size(); + if (mainRemoved) + break; } while (remove.size()); deleteCFG(cfg); diff --git a/sapfor/experts/Sapfor_2017/_src/Utils/version.h b/sapfor/experts/Sapfor_2017/_src/Utils/version.h index 60ab1ff..cc57a16 100644 --- a/sapfor/experts/Sapfor_2017/_src/Utils/version.h +++ b/sapfor/experts/Sapfor_2017/_src/Utils/version.h @@ -1,3 +1,3 @@ #pragma once -#define VERSION_SPF "2319" +#define VERSION_SPF "2320"