fixed CalculateInteger usage
This commit is contained in:
@@ -328,7 +328,7 @@ static void processActualParams(SgExpression *parList, const map<string, vector<
|
||||
currParams.parametersT[num] = parf;
|
||||
if (parf == SCALAR_INT_T)
|
||||
{
|
||||
SgExpression* result = CalculateInteger(ex->lhs());
|
||||
SgExpression* result = CalculateInteger(ex->lhs()->copyPtr());
|
||||
if (result != ex->lhs())
|
||||
{
|
||||
currParams.parameters[num] = new int[1];
|
||||
|
||||
@@ -2320,20 +2320,20 @@ static void createDeclarations(const map<SgStatement*, set<SgSymbol*>>& newSymbs
|
||||
if (t->selector())
|
||||
{
|
||||
if (t->selector()->variant() == CONST_REF)
|
||||
t->setSelector(CalculateInteger(t->selector()));
|
||||
t->setSelector(CalculateInteger(t->selector()->copyPtr()));
|
||||
}
|
||||
|
||||
if (t->length())
|
||||
{
|
||||
if (t->length()->variant() == CONST_REF)
|
||||
{
|
||||
auto result = CalculateInteger(t->length());
|
||||
auto result = CalculateInteger(t->length()->copyPtr());
|
||||
if (result->variant() == INT_VAL)
|
||||
t->setLength(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
auto result = CalculateInteger(list->lhs());
|
||||
auto result = CalculateInteger(list->lhs()->copyPtr());
|
||||
list->setLhs(result);
|
||||
}
|
||||
list = list->rhs();
|
||||
|
||||
@@ -2559,9 +2559,9 @@ SgExpression* getTypeLengthExpr(SgType *t)
|
||||
if (!len && !selector) //the number of bytes is not specified in type declaration statement
|
||||
return (new SgValueExp(getIntrinsicTypeSize(t)));
|
||||
else if (len && !selector) //INTEGER*2,REAL*8,CHARACTER*(N+1)
|
||||
return CalculateInteger(len);
|
||||
return CalculateInteger(len->copyPtr());
|
||||
else
|
||||
return CalculateInteger(getLengthOfKindExpr(t, selector, len)); //specified kind or/and len
|
||||
return CalculateInteger(getLengthOfKindExpr(t, selector, len)->copyPtr()); //specified kind or/and len
|
||||
}
|
||||
|
||||
int getSizeOfType(SgType *t)
|
||||
|
||||
@@ -631,7 +631,7 @@ int printParalleRegions(const char *fileName, vector<ParallelRegion*> ®ions)
|
||||
|
||||
static int getIntVal(SgExpression *ex)
|
||||
{
|
||||
SgExpression* calc = CalculateInteger(ex);
|
||||
SgExpression* calc = CalculateInteger(ex->copyPtr());
|
||||
if (calc->variant() == INT_VAL)
|
||||
return calc->valueInteger();
|
||||
else
|
||||
|
||||
@@ -114,7 +114,7 @@ static string getStringDeclaration(SgSymbol *symb)
|
||||
if (SgFile::switchToFile(symb->getFile()->filename()) != -1)
|
||||
{
|
||||
auto stat = symb->makeVarDeclStmt();
|
||||
auto res = CalculateInteger(stat->expr(0));
|
||||
auto res = CalculateInteger(stat->expr(0)->copyPtr());
|
||||
stat->setExpression(0, res);
|
||||
decl = stat->unparse();
|
||||
}
|
||||
|
||||
@@ -131,13 +131,13 @@ static bool isEqExpressions(SgExpression* exp1, SgExpression* exp2)
|
||||
|
||||
if (exp1 != NULL)
|
||||
{
|
||||
exp1 = CalculateInteger(exp1);
|
||||
exp1 = CalculateInteger(exp1->copyPtr());
|
||||
str1 = exp1->unparse();
|
||||
}
|
||||
|
||||
if (exp2 != NULL)
|
||||
{
|
||||
exp2 = CalculateInteger(exp2);
|
||||
exp2 = CalculateInteger(exp2->copyPtr());
|
||||
str2 = exp2->unparse();
|
||||
}
|
||||
|
||||
@@ -150,8 +150,8 @@ static bool isOppositeExpressions(SgExpression* exp1, SgExpression* exp2)
|
||||
if (exp1 == NULL || exp2 == NULL)
|
||||
return false;
|
||||
|
||||
exp1 = CalculateInteger(exp1);
|
||||
exp2 = CalculateInteger(exp2);
|
||||
exp1 = CalculateInteger(exp1->copyPtr());
|
||||
exp2 = CalculateInteger(exp2->copyPtr());
|
||||
|
||||
if (exp1->variant() == MINUS_OP)
|
||||
return isEqExpressions(exp1->lhs(), exp2);
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define VERSION_SPF "2307"
|
||||
#define VERSION_SPF "2308"
|
||||
|
||||
Reference in New Issue
Block a user