isinstance 沿 class_parents 反向 BFS 收集目标类全部子类 vtable,运行时比较对象头部 vtable 指针,修复"目标是实际类祖先"场景误判;this_adjust 改用字节偏移(字段在子类与父类自身布局的字节差)修正第二父类方法体内二次 GEP 越界读。新增 Test/IsinstanceTest 覆盖 5 大场景 14 断言。
30 lines
947 B
JSON
30 lines
947 B
JSON
{
|
|
"$schema": "https://raw.githubusercontent.com/TermiNexus/TransPyC/main/schemas/project-schema.json",
|
|
"name": "IsinstanceTest",
|
|
"version": "1.0.0",
|
|
"source_dir": "./App",
|
|
"build_dir": "./.tpv_build",
|
|
"compiler": {
|
|
"cmd": "llc",
|
|
"flags": ["-filetype=obj", "-relocation-model=pic"]
|
|
},
|
|
"linker": {
|
|
"cmd": "clang++",
|
|
"flags": ["-Wl,--allow-multiple-definition", "-Wl,--unresolved-symbols=ignore-in-object-files", "-lmsvcrt", "-lucrt", "-lpthread", "-lmingwex", "-lkernel32", "-luser32", "-latomic"],
|
|
"output": "IsinstanceTest.exe"
|
|
},
|
|
"includes": [
|
|
"../../includes"
|
|
],
|
|
"target": {
|
|
"triple": "x86_64-pc-windows-gnu",
|
|
"datalayout": "e-m:w-p270:32:32-p271:32:32-p272:64:64-f80:128-n8:16:32:64-S128"
|
|
},
|
|
"options": {
|
|
"slice_level": 3,
|
|
"sha1_slice_level": 1,
|
|
"target": "llvm",
|
|
"strict_mode": true
|
|
}
|
|
}
|