diff --git a/lib/core/LLVMCG/BaseGen.py b/lib/core/LLVMCG/BaseGen.py index 9a6739e..b567353 100644 --- a/lib/core/LLVMCG/BaseGen.py +++ b/lib/core/LLVMCG/BaseGen.py @@ -1209,10 +1209,11 @@ class BaseGenMixin: return func def _mangle_func_name(self, name: str, module_name: str | None = None) -> str: - if name in self._export_extern_funcs and name not in self._current_module_func_names: - # extern def 一律使用裸名(C/Win32 符号不加模块 SHA1 前缀); - # 但本模块自己定义的同名普通 def(如 os.system / os.getcwd)优先走 SHA1。 - return name + if name in self._export_extern_funcs: + # 显式模块限定(stdlib.system / win32process.ReadProcessMemory)或 + # 非本模块同名函数 → extern 裸名;本模块无限定同名 def 仍走 SHA1。 + if module_name is not None or name not in self._current_module_func_names: + return name # main 函数作为程序入口点,永远不混淆 if name == 'main': return name