task-create-implicit-pass #30

Merged
Alexander_KS merged 20 commits from task-create-implicit-pass into master 2024-03-23 08:21:24 +00:00
Showing only changes of commit 35dc430243 - Show all commits

View File

@@ -7,13 +7,13 @@ using std::set;
static const char commonIntLetters[6] = {'i', 'j', 'k', 'm', 'n', 'l'};
static void InitTypes(map<char, SgType*> types)
static void InitTypes(map<char, SgType*>& types)
{
for (char letter = 'a'; letter <= 'z'; letter++)
types[letter] = NULL;
}
static void FillCommonTypes(map<char, SgType*> types)
static void FillCommonTypes(map<char, SgType*>& types)
{
for (char letter : commonIntLetters)
if (types[letter] == NULL)
@@ -24,13 +24,13 @@ static void FillCommonTypes(map<char, SgType*> types)
types[letter.first] = new SgType(T_FLOAT);
}
static void FindAllVars(SgExpression* expr, set<SgSymbol*>* allVars)
static void FindAllVars(SgExpression* expr, set<SgSymbol*>& allVars)
{
if (expr == NULL)
return;
if (expr->variant() == VAR_REF || expr->variant() == ARRAY_REF)
allVars->insert(expr->symbol());
allVars.insert(expr->symbol());
FindAllVars(expr->lhs(), allVars);
FindAllVars(expr->rhs(), allVars);
@@ -114,7 +114,7 @@ static map<char, SgType*> FunctionImplicitCheck(SgStatement* function, map<SgSta
statement != NULL && statement->variant() != CONTAINS_STMT; statement = statement->lexNext())
{
for (int expressionNumber = 0; expressionNumber < 3; expressionNumber++)
FindAllVars(statement->expr(expressionNumber), &allVars);
FindAllVars(statement->expr(expressionNumber), allVars);
if (statement == function->lastExecutable())
break;
@@ -174,6 +174,4 @@ void ImplicitCheck(SgFile* file)
}
typesByFunctions.clear();
printf("%s", file->firstStatement()->unparse());
}