fix(gen): fatal_error 后补 return 样板,修复属性访问/写入掉出末尾
translate_attribute 与 get_attribute_ptr 的 match 末 arm(case _)调 fatal_error 后无 return None → 块未 terminated → 该 arm 被 match 收尾 误判掉出 → br end_bb → merge 可达 → 方法收尾 fail-fast '流程掉出末尾' (返回类型 Value*)。补显式 return None(块设计约定:fatal_error 后也 必须保证块 terminated)。
This commit is contained in:
1 parent
d766eaf656
commit
6d627d67cf
1 file changed
+6
-1
@@ -874,6 +874,9 @@ class ExprGenAttr(ExprGenBase.ExprGenBase):
|
||||
at,
|
||||
f"属性访问失败: .{attr_nm_ap} (base=非指针类型,无法做属性访问 sha1={sha1_ap}:{ln_ap})",
|
||||
"TypeError")
|
||||
# fatal_error 后补显式 return 样板:match 末 arm 块必须 terminated,
|
||||
# 否则掉出末尾被函数收尾 fail-fast 误判(块设计约定)
|
||||
return None
|
||||
# ============================================================
|
||||
# 获取属性访问的字段指针(不加载值,用于赋值)
|
||||
# 对于 Name 类型的 obj,直接使用 alloca 指针(不 load 结构体)
|
||||
@@ -1143,4 +1146,6 @@ class ExprGenAttr(ExprGenBase.ExprGenBase):
|
||||
HandlesType.fatal_error(
|
||||
at,
|
||||
f"属性写入失败: .{attr_nm_gp} (base=非指针类型,无法做属性写入 sha1={sha1_gp}:{ln_gp})",
|
||||
"TypeError")
|
||||
"TypeError")
|
||||
# fatal_error 后补显式 return 样板:match 末 arm 块必须 terminated
|
||||
return None
|
||||
Reference in new issue
Block a user