Commit Graph
3 Commits
Author SHA1 Message Date
TermiNexus 4c39db17c6 fix(project): 适配 lld 链接器(clang 22 环境)
- 移除 -Wl,--unresolved-symbols=ignore-in-object-files(GNU ld 专用,lld 报 unknown argument)
- 移除 -latomic(clang64 无 libatomic;x86_64 原子均 lock-free)
- 保留 -Wl,--allow-multiple-definition(lld 支持)
- 47 个 Test project.json 统一更新
2026-08-12 21:45:41 +08:00
TermiNexus 1b89225130 feat(TPC): 拓展 isinstance 跨模块支持
vtable linkage 改默认外部强定义(含 initializer 自动归一为空),跨模块可引用 sha1.Class_Vtable;外部引用声明为 i8* 避免 array 类型不匹配;_ResolveVtableAddr 增加 CVTable 状态检查,NoVTable 类回退编译时静态判断避免坏引用。新增 geom_lib.vp 跨模块测试库,main.vp 增加跨模块继承/运行时多态/NoVTable 场景。
2026-08-10 19:16:27 +08:00
TermiNexus 8783340385 feat(TPC): 实现 isinstance 内建 + 多继承 this_adjust 字节偏移修复
isinstance 沿 class_parents 反向 BFS 收集目标类全部子类 vtable,运行时比较对象头部 vtable 指针,修复"目标是实际类祖先"场景误判;this_adjust 改用字节偏移(字段在子类与父类自身布局的字节差)修正第二父类方法体内二次 GEP 越界读。新增 Test/IsinstanceTest 覆盖 5 大场景 14 断言。
2026-08-10 19:11:18 +08:00