fixed module utils
This commit is contained in:
@@ -310,8 +310,17 @@ static void getModuleSymbols(SgStatement* func, set<SgSymbol*>& symbs)
|
||||
SgSymbol* s = func->symbol()->next();
|
||||
while (s)
|
||||
{
|
||||
if (IS_BY_USE(s) && s->scope() && s->scope()->symbol()->identifier() == currScope)
|
||||
symbs.insert(s);
|
||||
if (func->variant() == MODULE_STMT)
|
||||
{
|
||||
if (s->scope() && s->scope()->symbol() && s->scope()->symbol()->identifier())
|
||||
if (s->scope()->symbol()->identifier() == currScope)
|
||||
symbs.insert(s);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (IS_BY_USE(s) && s->scope() && s->scope()->symbol()->identifier() == currScope)
|
||||
symbs.insert(s);
|
||||
}
|
||||
s = s->next();
|
||||
}
|
||||
}
|
||||
@@ -325,9 +334,9 @@ const set<SgSymbol*>& getModuleSymbols(SgStatement *func)
|
||||
set<SgSymbol*> symbs;
|
||||
getModuleSymbols(func, symbs);
|
||||
|
||||
//if function in contains
|
||||
//if function or module in contains
|
||||
auto cp = func->controlParent();
|
||||
if (isSgProgHedrStmt(cp))
|
||||
if (isSgProgHedrStmt(cp) || cp->variant() == MODULE_STMT)
|
||||
getModuleSymbols(cp, symbs);
|
||||
|
||||
symbolsForFunc[func->symbol()->identifier()] = symbs;
|
||||
|
||||
Reference in New Issue
Block a user