diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index 4aeb443..95179d3 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -7732,7 +7732,7 @@ void InterCodeBasicBlock::UpdateLocalIntegerRangeSetsForward(const GrowingVariab vr = ins->mDst.mRange; if (ins->mSrc[0].mTemp < 0 && ins->mSrc[0].mMemory == IM_FPARAM) - vr.Limit(mLocalParamValueRange[ins->mSrc[0].mVarIndex]); + vr.Limit(mLocalParamValueRange[ins->mSrc[0].mVarIndex + ins->mSrc[0].mIntConst]); #if 1 if (ins->mDst.mType == IT_INT8) { @@ -8409,7 +8409,7 @@ void InterCodeBasicBlock::UpdateLocalIntegerRangeSetsForward(const GrowingVariab else if (ins->mCode == IC_STORE) { if (ins->mSrc[1].mTemp < 0 && ins->mSrc[1].mMemory == IM_FPARAM) - mLocalParamValueRange[ins->mSrc[1].mVarIndex] = ins->mSrc[0].mRange; + mLocalParamValueRange[ins->mSrc[1].mVarIndex + ins->mSrc[0].mIntConst] = ins->mSrc[0].mRange; } assert(mProc->mLocalValueRange.Size() == mExitRequiredTemps.Size()); @@ -21992,7 +21992,7 @@ void InterCodeProcedure::Close(void) { GrowingTypeArray tstack(IT_NONE); - CheckFunc = !strcmp(mIdent->mString, "main"); + CheckFunc = !strcmp(mIdent->mString, "f"); CheckCase = false; mEntryBlock = mBlocks[0];