فهرست منبع

HasFlag behavior change

Brian Fiete 6 ماه پیش
والد
کامیت
8e8a28b23e
1فایلهای تغییر یافته به همراه4 افزوده شده و 1 حذف شده
  1. 4 1
      IDEHelper/Compiler/BfModule.cpp

+ 4 - 1
IDEHelper/Compiler/BfModule.cpp

@@ -13809,6 +13809,9 @@ void BfModule::AggregateSplatIntoAddr(BfTypedValue typedValue, BfIRValue addrVal
 
 BfTypedValue BfModule::MakeAddressable(BfTypedValue typedVal, bool forceMutable, bool forceAddressable)
 {
+	if (!typedVal)
+		return typedVal;
+
 	bool wasReadOnly = typedVal.IsReadOnly();
 
  	if ((forceAddressable) ||
@@ -22567,7 +22570,7 @@ void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup,
 				{
 					BfIRValue thisValue = LoadValue(GetThis()).mValue;
 					auto andResult = mBfIRBuilder->CreateAnd(thisValue, mCurMethodState->mLocals[1]->mValue);
-					auto toBool = mBfIRBuilder->CreateCmpNE(andResult, GetDefaultValue(mCurMethodState->mLocals[0]->mResolvedType));
+					auto toBool = mBfIRBuilder->CreateCmpEQ(andResult, mCurMethodState->mLocals[1]->mValue);
 					fromBool = mBfIRBuilder->CreateNumericCast(toBool, false, BfTypeCode_Boolean);
 				}
 				mBfIRBuilder->RestoreDebugLocation();