diff --git a/IDEHelper/Backend/BeMCContext.cpp b/IDEHelper/Backend/BeMCContext.cpp index 6b19729a..72959a1c 100644 --- a/IDEHelper/Backend/BeMCContext.cpp +++ b/IDEHelper/Backend/BeMCContext.cpp @@ -2753,6 +2753,15 @@ BeMCOperand BeMCContext::CreateCall(const BeMCOperand &func, const SizedArrayImp BeMCOperand BeMCContext::CreateLoad(const BeMCOperand& mcTarget) { + if (mcTarget.mKind == BeMCOperandKind_Immediate_Null) + { + auto fakeType = GetType(mcTarget); + auto fakePtr = AllocVirtualReg(fakeType); + CreateDefineVReg(fakePtr); + AllocInst(BeMCInstKind_Mov, fakePtr, BeMCOperand::FromImmediate(0)); + return CreateLoad(fakePtr); + } + BeMCOperand result; auto loadedTarget = BeMCOperand::ToLoad(mcTarget);