From 025bbbe259321255ff892ddb1d20d55f2ab662fb Mon Sep 17 00:00:00 2001 From: ALEXks Date: Thu, 5 Feb 2026 15:01:05 +0300 Subject: [PATCH] fixed getNameInLocation for module functions --- src/Utils/module_utils.cpp | 20 ++++++++++++++++++-- src/Utils/version.h | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Utils/module_utils.cpp b/src/Utils/module_utils.cpp index 8d1de0a..9e72cff 100644 --- a/src/Utils/module_utils.cpp +++ b/src/Utils/module_utils.cpp @@ -337,8 +337,13 @@ const set& getModuleSymbols(SgStatement *func) //if function or module in contains auto cp = func->controlParent(); if (isSgProgHedrStmt(cp) || cp->variant() == MODULE_STMT) + { getModuleSymbols(cp, symbs); + if (func->variant() == FUNC_HEDR) + symbs.insert(func->symbol()); + } + symbolsForFunc[func->symbol()->identifier()] = symbs; return symbs; } @@ -349,9 +354,19 @@ static void findSymbol(SgStatement* func, const string& varName, const string& l for (const auto& s : getModuleSymbols(func)) { SgSymbol* orig = OriginalSymbol(s); + printf("%s == %s\n", orig->identifier(), s->identifier()); //any suitable symbol can be used - if (orig->identifier() == varName && orig->scope()->symbol()->identifier() == locName) - altNames[s->identifier()] = s; + + if (orig->variant() == FUNCTION_NAME) + { + if (orig->identifier() == varName) + altNames[s->identifier()] = s; + } + else + { + if (orig->identifier() == varName && orig->scope()->symbol()->identifier() == locName) + altNames[s->identifier()] = s; + } } } @@ -369,6 +384,7 @@ SgSymbol* getNameInLocation(SgStatement* func, const string& varName, const stri return altNames.begin()->second; else { __spf_print(1, "%s (%s %s) %s\n", func->symbol()->identifier(), clearName.c_str(), varName.c_str(), locName.c_str()); + findSymbol(func, varName, locName, altNames); printInternalError(convertFileName(__FILE__).c_str(), __LINE__); } diff --git a/src/Utils/version.h b/src/Utils/version.h index 84a9011..eaa0bbe 100644 --- a/src/Utils/version.h +++ b/src/Utils/version.h @@ -1,3 +1,3 @@ #pragma once -#define VERSION_SPF "2457" +#define VERSION_SPF "2458"