From 11ccb876a3685f66d2c5e945045b156bd59530a2 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 13 Mar 2025 06:52:37 -0400 Subject: [PATCH] Made 'faked' static reference undef so it's not detected as constant --- IDEHelper/Compiler/BfIRBuilder.cpp | 2 ++ IDEHelper/Compiler/BfModule.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfIRBuilder.cpp b/IDEHelper/Compiler/BfIRBuilder.cpp index 262e99f1..250f54d3 100644 --- a/IDEHelper/Compiler/BfIRBuilder.cpp +++ b/IDEHelper/Compiler/BfIRBuilder.cpp @@ -664,6 +664,8 @@ bool BfIRConstHolder::IsConstValue(BfIRValue value) if (constant->mConstType == BfConstType_GlobalVar) return false; + if (constant->mConstType == BfConstType_Undef) + return false; return true; } diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index c2f2561d..e9879a44 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -15752,7 +15752,7 @@ BfTypedValue BfModule::ReferenceStaticField(BfFieldInstance* fieldInstance) { // Just fake it for the extern and unspecialized modules // We can't do this for compilation because unreified methods with default params need to get actual global variable refs - return BfTypedValue(mBfIRBuilder->CreateConstNull(), fieldInstance->GetResolvedType(), true); + return BfTypedValue(mBfIRBuilder->CreateUndefValue(mBfIRBuilder->GetPrimitiveType(BfTypeCode_NullPtr)), fieldInstance->GetResolvedType(), true); } BfIRValue* globalValuePtr = NULL;