From 485316385bd2242d9272549ec37cbf0f28d9b9ba Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 17 Jun 2022 12:19:19 -0700 Subject: [PATCH] Fixed debug info for static local variables --- IDEHelper/Compiler/BfModule.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 8af4a49e..2b56dea2 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -15195,6 +15195,16 @@ void BfModule::DoLocalVariableDebugInfo(BfLocalVariable* localVarDef, bool doAli if (!mBfIRBuilder->mIgnoreWrites) { + if ((localVarDef->mIsStatic) && (localVarDef->mAddr) && (!localVarDef->mResolvedType->IsValuelessType())) + { + auto refType = CreateRefType(localVarDef->mResolvedType); + diType = mBfIRBuilder->DbgGetType(refType); + + auto refAlloca = CreateAlloca(refType); + mBfIRBuilder->CreateStore(localVarDef->mAddr, refAlloca); + diValue = refAlloca; + } + auto diVariable = mBfIRBuilder->DbgCreateAutoVariable(mCurMethodState->mCurScope->mDIScope, localVarDef->mName, mCurFilePosition.mFileInstance->mDIFile, mCurFilePosition.mCurLine, diType, initType); localVarDef->mDbgVarInst = diVariable;