浏览代码

Fixed condbr on aliased mixin param value

Brian Fiete 3 年之前
父节点
当前提交
91e856fc0b
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      IDEHelper/Compiler/BfExprEvaluator.cpp

+ 7 - 1
IDEHelper/Compiler/BfExprEvaluator.cpp

@@ -16217,8 +16217,14 @@ void BfExprEvaluator::InjectMixin(BfAstNode* targetSrc, BfTypedValue target, boo
 						mModule->mBfIRBuilder->DbgInsertDeclare(aliasValue, diVariable);
 						mModule->mBfIRBuilder->DbgInsertDeclare(aliasValue, diVariable);
 					else
 					else
 					{
 					{
+						if (newLocalVar->mResolvedType->IsBoolean())
+						{
+							// Fix case of remote condbr referencing
+							newLocalVar->mAddr = mModule->CreateAlloca(newLocalVar->mResolvedType);
+							mModule->mBfIRBuilder->CreateStore(newLocalVar->mValue, newLocalVar->mAddr);
+						}
+
 						mModule->mBfIRBuilder->DbgInsertValueIntrinsic(aliasValue, diVariable);
 						mModule->mBfIRBuilder->DbgInsertValueIntrinsic(aliasValue, diVariable);
-						//mModule->mBfIRBuilder->DbgInsertValueIntrinsic(newLocalVar->mValue, diVariable);
 					}
 					}
 				}
 				}
 			}
 			}