fixed implicit pass
This commit is contained in:
@@ -4442,19 +4442,17 @@ void Call(SgSymbol *s, SgExpression *e)
|
||||
if (IsInternalProcedure(s) && analyzing)
|
||||
Error(" Call of the procedure %s in a region, which is internal/module procedure", s->identifier(), 580, cur_st);
|
||||
|
||||
if (!isUserFunction(s) && isIntrinsicFunctionName(s->identifier())) //IsNoBodyProcedure(s)
|
||||
if (!isUserFunction(s) && (s->attributes() & INTRINSIC_BIT || isIntrinsicFunctionName(s->identifier()))) //IsNoBodyProcedure(s)
|
||||
{
|
||||
RefInExpr(e, _READ_);
|
||||
return;
|
||||
}
|
||||
|
||||
//if (inparloop || IN_STATEMENT_GROUP(cur_st))
|
||||
//{
|
||||
if (analyzing)
|
||||
{
|
||||
if ((!IsPureProcedure(s) && (s->variant() != FUNCTION_NAME || !options.isOn(NO_PURE_FUNC))) || IS_BY_USE(s))
|
||||
{
|
||||
Warning(" Call of the procedure %s in a region, which is not pure or is module procedure", s->identifier(), 580, cur_st);
|
||||
Warning(" Call of the procedure %s in a region, which is not pure. Module procedure call is illegal. Intrinsic procedure should be specified by INTRINSIC statement.", s->identifier(), 580, cur_st);
|
||||
doNotForCuda();
|
||||
}
|
||||
}
|
||||
@@ -4464,7 +4462,7 @@ void Call(SgSymbol *s, SgExpression *e)
|
||||
MarkAsCalled(s);
|
||||
acc_call_list = AddNewToSymbList(acc_call_list, s);
|
||||
}
|
||||
//}
|
||||
|
||||
if (!e) //argument list is absent
|
||||
return;
|
||||
in_arg_list++;
|
||||
|
||||
@@ -52,12 +52,10 @@ void initIntrinsicFunctionNames()
|
||||
return;
|
||||
|
||||
intrinsicF.insert(string("abs"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("adjustl"));
|
||||
#endif
|
||||
intrinsicF.insert(string("adjustl"));
|
||||
intrinsicF.insert(string("and"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("any"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("associated"));
|
||||
intrinsicF.insert(string("allocated"));
|
||||
#endif
|
||||
@@ -86,11 +84,9 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("atanh"));
|
||||
intrinsicF.insert(string("atan2"));
|
||||
intrinsicF.insert(string("atan2d"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("aint"));
|
||||
intrinsicF.insert(string("anint"));
|
||||
intrinsicF.insert(string("achar"));
|
||||
#endif
|
||||
intrinsicF.insert(string("babs"));
|
||||
intrinsicF.insert(string("bbits"));
|
||||
intrinsicF.insert(string("bbset"));
|
||||
@@ -149,8 +145,8 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("dfloti"));
|
||||
intrinsicF.insert(string("dflotj"));
|
||||
intrinsicF.insert(string("dflotk"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("dint"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("dvtime"));
|
||||
#endif
|
||||
intrinsicF.insert(string("dmax1"));
|
||||
@@ -190,9 +186,7 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("dcotan"));
|
||||
intrinsicF.insert(string("dcotand"));
|
||||
intrinsicF.insert(string("dtanh"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("dnint"));
|
||||
#endif
|
||||
intrinsicF.insert(string("dcmplx"));
|
||||
intrinsicF.insert(string("dconjg"));
|
||||
intrinsicF.insert(string("dimag"));
|
||||
@@ -227,9 +221,7 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("hshftc"));
|
||||
intrinsicF.insert(string("hsign"));
|
||||
intrinsicF.insert(string("htest"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("huge"));
|
||||
#endif
|
||||
intrinsicF.insert(string("hypot"));
|
||||
intrinsicF.insert(string("iiabs"));
|
||||
#ifdef __SPF
|
||||
@@ -254,12 +246,10 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("index"));
|
||||
intrinsicF.insert(string("iabs"));
|
||||
intrinsicF.insert(string("ibits"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("idnint"));
|
||||
intrinsicF.insert(string("ichar"));
|
||||
intrinsicF.insert(string("iachar"));
|
||||
intrinsicF.insert(string("isnan"));
|
||||
#endif
|
||||
intrinsicF.insert(string("iand"));
|
||||
intrinsicF.insert(string("ior"));
|
||||
intrinsicF.insert(string("ibset"));
|
||||
@@ -316,9 +306,7 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("kmod"));
|
||||
intrinsicF.insert(string("knot"));
|
||||
intrinsicF.insert(string("len"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("len_trim"));
|
||||
#endif
|
||||
intrinsicF.insert(string("lge"));
|
||||
intrinsicF.insert(string("lgt"));
|
||||
intrinsicF.insert(string("lle"));
|
||||
@@ -342,26 +330,22 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("mod"));
|
||||
intrinsicF.insert(string("modulo"));
|
||||
intrinsicF.insert(string("not"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("nint"));
|
||||
intrinsicF.insert(string("null"));
|
||||
#endif
|
||||
intrinsicF.insert(string("or"));
|
||||
intrinsicF.insert(string("popcnt"));
|
||||
intrinsicF.insert(string("poppar"));
|
||||
intrinsicF.insert(string("random_number"));
|
||||
intrinsicF.insert(string("real"));
|
||||
intrinsicF.insert(string("reshape"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("reshape"));
|
||||
intrinsicF.insert(string("present"));
|
||||
intrinsicF.insert(string("repeat"));
|
||||
#endif
|
||||
intrinsicF.insert(string("rshft"));
|
||||
intrinsicF.insert(string("rshift"));
|
||||
intrinsicF.insert(string("sign"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("size"));
|
||||
intrinsicF.insert(string("scan"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("sizeof"));
|
||||
#endif
|
||||
intrinsicF.insert(string("sngl"));
|
||||
@@ -379,9 +363,7 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicF.insert(string("tan"));
|
||||
intrinsicF.insert(string("tand"));
|
||||
intrinsicF.insert(string("tanh"));
|
||||
#ifdef __SPF
|
||||
intrinsicF.insert(string("tiny"));
|
||||
#endif
|
||||
intrinsicF.insert(string("trailz"));
|
||||
intrinsicF.insert(string("trim"));
|
||||
intrinsicF.insert(string("xor"));
|
||||
@@ -532,9 +514,7 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicDoubleT.insert(string("dfloti"));
|
||||
intrinsicDoubleT.insert(string("dflotj"));
|
||||
intrinsicDoubleT.insert(string("dflotk"));
|
||||
#ifdef __SPF
|
||||
intrinsicDoubleT.insert(string("dint"));
|
||||
#endif
|
||||
intrinsicDoubleT.insert(string("dmax1"));
|
||||
intrinsicDoubleT.insert(string("dmin1"));
|
||||
intrinsicDoubleT.insert(string("dmod"));
|
||||
@@ -572,9 +552,7 @@ void initIntrinsicFunctionNames()
|
||||
intrinsicDoubleT.insert(string("dcotan"));
|
||||
intrinsicDoubleT.insert(string("dcotand"));
|
||||
intrinsicDoubleT.insert(string("dtanh"));
|
||||
#ifdef __SPF
|
||||
intrinsicDoubleT.insert(string("dnint"));
|
||||
#endif
|
||||
intrinsicDoubleT.insert(string("dcmplx"));
|
||||
intrinsicDoubleT.insert(string("dconjg"));
|
||||
intrinsicDoubleT.insert(string("dimag"));
|
||||
|
||||
@@ -11,7 +11,9 @@ OBJS=\
|
||||
statfile.o \
|
||||
statread.o \
|
||||
treeinter.o \
|
||||
statprintf.o
|
||||
statprintf.o \
|
||||
stat.o \
|
||||
statinter.o
|
||||
|
||||
$(BINDIR)/$(EXECUTABLES): $(OBJS)
|
||||
$(LINKER) -o $@ $(OBJS) -L$(ZLIBDIR) -l$(ZLIB)
|
||||
@@ -36,3 +38,7 @@ treeinter.o:
|
||||
$(CXX) $(COPT) treeinter.cpp
|
||||
statprintf.o:
|
||||
$(CXX) $(COPT) statprintf.cpp
|
||||
stat.o:
|
||||
$(CXX) $(COPT) stat.cpp
|
||||
statinter.o:
|
||||
$(CXX) $(COPT) statinter.cpp
|
||||
|
||||
@@ -28,7 +28,9 @@ OBJS=\
|
||||
$(OUTDIR)\statfile.obj \
|
||||
$(OUTDIR)\statread.obj \
|
||||
$(OUTDIR)\treeinter.obj \
|
||||
$(OUTDIR)\statprintf.obj
|
||||
$(OUTDIR)\statprintf.obj \
|
||||
$(OUTDIR)\stat.obj \
|
||||
$(OUTDIR)\statinter.obj
|
||||
|
||||
$(BINDIR)/$(EXECUTABLES).exe: $(OBJS)
|
||||
$(LINKER) @<<
|
||||
|
||||
Reference in New Issue
Block a user