Fix param value range on store with index

This commit is contained in:
drmortalwombat 2024-09-20 16:15:02 +02:00
parent 5d7dcf9373
commit a93b495ac5

View File

@ -8560,7 +8560,7 @@ void InterCodeBasicBlock::UpdateLocalIntegerRangeSetsForward(const GrowingVariab
else if (ins->mCode == IC_STORE) else if (ins->mCode == IC_STORE)
{ {
if (ins->mSrc[1].mTemp < 0 && ins->mSrc[1].mMemory == IM_FPARAM) if (ins->mSrc[1].mTemp < 0 && ins->mSrc[1].mMemory == IM_FPARAM)
mLocalParamValueRange[ins->mSrc[1].mVarIndex + int(ins->mSrc[0].mIntConst)] = ins->mSrc[0].mRange; mLocalParamValueRange[ins->mSrc[1].mVarIndex + int(ins->mSrc[1].mIntConst)] = ins->mSrc[0].mRange;
} }
assert(mProc->mLocalValueRange.Size() == mExitRequiredTemps.Size()); assert(mProc->mLocalValueRange.Size() == mExitRequiredTemps.Size());
@ -22238,7 +22238,7 @@ void InterCodeProcedure::Close(void)
{ {
GrowingTypeArray tstack(IT_NONE); GrowingTypeArray tstack(IT_NONE);
CheckFunc = !strcmp(mIdent->mString, "main"); CheckFunc = !strcmp(mIdent->mString, "VLine");
CheckCase = false; CheckCase = false;
mEntryBlock = mBlocks[0]; mEntryBlock = mBlocks[0];