fix: 泛型返回类型短路/数组迭代/非工作区崩溃
- CallGenMixin: 本模块 mangled 调用从当前 IR 取返回类型, 不查自己的 text.ll(未生成误告警) - HandlesFor: Ptr([N x T]) 数组退化指针 load 后走数组迭代 - Config: 配置字段默认 None/0, 避免垃圾指针通过 is not None 检查 - main: 无 project 配置且无 --src 时 fail-fast 退出(非工作区崩溃)
This commit is contained in:
1 parent
e7b0fecb99
commit
a649e4807d
4 files changed
+87
-53
No files matched your search
@@ -19,23 +19,26 @@ import w32.fileio as fileio
|
||||
_mbuddy: memhub.MemManager | t.CPtr
|
||||
|
||||
# 配置值(从 project.vpj 加载)
|
||||
SourceDir: str
|
||||
BuildDir: str
|
||||
TempDir: str # = {BuildDir}/temp(自动计算)
|
||||
OutputDir: str # = {BuildDir}/output(自动计算)
|
||||
ProjectName: str
|
||||
ProjectVersion: str
|
||||
CompilerCmd: str
|
||||
CompilerFlags: str # 编译器参数(空格分隔,从 compiler.flags 数组拼接)
|
||||
LinkerCmd: str
|
||||
LinkerFlags: str # 链接器参数(空格分隔,从 linker.flags 数组拼接)
|
||||
LinkerOutput: str
|
||||
TargetTriple: str
|
||||
TargetDataLayout: str
|
||||
Sha1SliceLevel: t.CInt # SHA1 切片层数(目录分散等级)
|
||||
StrictMode: t.CInt
|
||||
IncludesDir: str # includes 目录路径(从 includes 数组首元素,兼容单目录场景)
|
||||
IncludesDirs: str # 全部 includes 目录(空格分隔,多 includes 目录支持)
|
||||
# 默认 None/0:未加载 project.vpj 时字段为 null,调用方 is not None
|
||||
# 检查才能正确兜底(否则垃圾指针通过检查 → 用非法路径 → 崩溃,
|
||||
# 尤其非工作区执行无配置时)。
|
||||
SourceDir: str = None
|
||||
BuildDir: str = None
|
||||
TempDir: str = None # = {BuildDir}/temp(自动计算)
|
||||
OutputDir: str = None # = {BuildDir}/output(自动计算)
|
||||
ProjectName: str = None
|
||||
ProjectVersion: str = None
|
||||
CompilerCmd: str = None
|
||||
CompilerFlags: str = None # 编译器参数(空格分隔,从 compiler.flags 数组拼接)
|
||||
LinkerCmd: str = None
|
||||
LinkerFlags: str = None # 链接器参数(空格分隔,从 linker.flags 数组拼接)
|
||||
LinkerOutput: str = None
|
||||
TargetTriple: str = None
|
||||
TargetDataLayout: str = None
|
||||
Sha1SliceLevel: t.CInt = 0 # SHA1 切片层数(目录分散等级)
|
||||
StrictMode: t.CInt = 0
|
||||
IncludesDir: str = None # includes 目录路径(从 includes 数组首元素,兼容单目录场景)
|
||||
IncludesDirs: str = None # 全部 includes 目录(空格分隔,多 includes 目录支持)
|
||||
|
||||
|
||||
def Load_project_config(path: str) -> int:
|
||||
|
||||
Reference in new issue
Block a user