From 1c1417763851344e87fc6848ed67747dc3e46db3 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 11 Feb 2021 08:20:57 -0800 Subject: [PATCH] Fixed MapType issue with global var --- IDEHelper/Backend/BeIRCodeGen.cpp | 6 +++++- IDEHelper/Compiler/BfModule.cpp | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Backend/BeIRCodeGen.cpp b/IDEHelper/Backend/BeIRCodeGen.cpp index 884244e5..e6b14d68 100644 --- a/IDEHelper/Backend/BeIRCodeGen.cpp +++ b/IDEHelper/Backend/BeIRCodeGen.cpp @@ -690,6 +690,8 @@ void BeIRCodeGen::Read(BeValue*& beValue) CMD_PARAM(BeConstant*, initializer); CMD_PARAM(String, name); CMD_PARAM(bool, isTLS); + + BF_ASSERT(varType != NULL); auto globalVariable = mBeModule->mGlobalVariables.Alloc(); globalVariable->mModule = mBeModule; @@ -1907,7 +1909,9 @@ void BeIRCodeGen::HandleNextCmd() CMD_PARAM(StringT<256>, name); CMD_PARAM(bool, isTLS); CMD_PARAM(BeConstant*, initializer); - + + BF_ASSERT(varType != NULL); + auto globalVariable = mBeModule->mGlobalVariables.Alloc(); globalVariable->mModule = mBeModule; globalVariable->mType = varType; diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index eb6a4b11..9a7bc70a 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -13725,7 +13725,10 @@ BfTypedValue BfModule::ReferenceStaticField(BfFieldInstance* fieldInstance) auto globalVar = (BfGlobalVar*)mBfIRBuilder->GetConstant(globalValue); if ((globalVar->mStreamId == -1) && (!mBfIRBuilder->mIgnoreWrites)) + { + mBfIRBuilder->MapType(fieldInstance->mResolvedType); mBfIRBuilder->CreateGlobalVariable(globalValue); + } } else {