尝试进行 Qt 测试,增加了 AI 人机调试工具 _console,以及 TransPyV 进行修正

This commit is contained in:
2026-07-21 14:41:22 +08:00
parent a277ded8d4
commit 135aa05485
311 changed files with 7084 additions and 2131 deletions

View File

@@ -536,15 +536,7 @@ class AssignHandle(BaseHandle):
if DefVal.type != expected_type:
if isinstance(expected_type, ir.IntType) and isinstance(DefVal.type, ir.IntType):
if DefVal.type.width < expected_type.width:
if DefVal.type.width == 1:
# i1 是布尔值,无符号语义,必须 zext
DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}")
else:
is_unsigned: bool = Gen._check_node_unsigned(arg_def[def_idx]) or id(DefVal) in Gen._unsigned_results
if is_unsigned:
DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}")
else:
DefVal = Gen.builder.sext(DefVal, expected_type, name=f"sext_default_{arg_idx}")
DefVal = Gen.builder.zext(DefVal, expected_type, name=f"zext_default_{arg_idx}")
elif DefVal.type.width > expected_type.width:
DefVal = Gen.builder.trunc(DefVal, expected_type, name=f"trunc_default_{arg_idx}")
CallArgs.append(DefVal)