diff --git a/src/DvmhRegions/DvmhRegionInserter.cpp b/src/DvmhRegions/DvmhRegionInserter.cpp index 9a6c809..57dff85 100644 --- a/src/DvmhRegions/DvmhRegionInserter.cpp +++ b/src/DvmhRegions/DvmhRegionInserter.cpp @@ -834,19 +834,21 @@ static string getInterfaceBlock(SgStatement* func, const FuncParam& pars) auto copy = duplicateProcedure(func, NULL, false, false, false, true); const set idents(pars.identificators.begin(), pars.identificators.end()); + bool need = (func->symbol()->identifier() == string("bl182")); + //remove all exec SgStatement* st = copy->lexNext(); SgStatement* last = copy->lastNodeOfStmt(); vector toExtract; + while (st != last) { if (isDVM_stat(st) || isSPF_stat(st)) { if (st->variant() != ACC_ROUTINE_DIR) { - SgStatement* next = st->lexNext(); - st->extractStmt(); - st = next; + toExtract.push_back(st); + st = st->lexNext(); } else st = st->lexNext(); @@ -868,6 +870,7 @@ static string getInterfaceBlock(SgStatement* func, const FuncParam& pars) while (st != last) { const int var = st->variant(); + if (var == VAR_DECL || var == VAR_DECL_90 || var == DIM_STAT @@ -877,9 +880,8 @@ static string getInterfaceBlock(SgStatement* func, const FuncParam& pars) bool empty = filterFromList(st, idents); if (empty) { - SgStatement* next = st->lexNext(); toExtract.push_back(st); - st = next; + st = st->lexNext(); continue; } } diff --git a/src/Utils/version.h b/src/Utils/version.h index fd53754..f7a00de 100644 --- a/src/Utils/version.h +++ b/src/Utils/version.h @@ -1,3 +1,3 @@ #pragma once -#define VERSION_SPF "2413" +#define VERSION_SPF "2414"