Commit Graph
3 Commits
Author SHA1 Message Date
TermiNexus c83fc752c6 fix(sizeof,parse): 尺寸链去静默兜底,解析报错可定位,补 C 解析器缺口
StructGen: _get_struct_size/_get_align 去 opaque→8/ptr_size、未知→4 兜底并补 VectorType;LiteralStructType.fields→.elements(llvmlite 无 fields,必然 AttributeError)

HandlesClassDef: union 载荷尺寸经不存在的 ir.DataLayout 静默退化成 8 字节;HandlesExprCall/ExprBuiltin: sizeof 各静默 0 分支改 fail-fast,数组元素 sizeof 统一走 _get_struct_size

HandlesFor: nonlocal struct/array 堆分配不再退化成 malloc(8)

vast/vast_c: 补一元 * / & 解析,装饰器后 extern/export 分派修复,C 侧报错带 token 与行号;StubGen.Converter: 宏展开丢尾随空行修 .pyi 缩进非法

其余为 rawptr 迁移 / fail-fast 口径等历史改动一并入库
2026-09-26 19:27:22 +08:00
TermiNexus 2922af79f1 fix(LLVMCG): 禁止对 null 指针常量做 load 转 int 字段
_coerce_value 中 target 为 IntType 且 val 为 PointerType 时,若
val 是 null 常量且 pointee.width == target.width,此前直接
builder.load(null) 生成 load i32, i32* null,运行时 ASAN
access-violation。根因场景:Generator.__init__ 里
self.ClassMetaKinds = None(字段注解 t.CInt | t.CPtr,联合类型
退化为 i32 槽位,None 解析为 i32* null)。修复:null 常量赋 int
字段直接返回 0;_store 的 null 分支同步补 IntType 处理。
2026-08-18 12:50:31 +08:00
t 796222a300 snapshot before regression test 2026-07-18 19:25:40 +08:00