diff --git a/lib/core/Handles/HandlesFunctions.py b/lib/core/Handles/HandlesFunctions.py index 768ed32..b72ec90 100644 --- a/lib/core/Handles/HandlesFunctions.py +++ b/lib/core/Handles/HandlesFunctions.py @@ -1329,6 +1329,9 @@ class FunctionHandle(BaseHandle): return old_func def _EmitFunctionLlvm(self, Node: ast.FunctionDef, Gen: LlvmCodeGenerator, ClassName: str | None = None, extra_params: list[tuple[str, ir.Type]] | None = None) -> ir.Function | None: + if getattr(Node, 'Extern', False) or 'extern' in (getattr(Node, 'Markers', None) or ()): + # extern def 只有声明,不发射函数体(否则会生成空 define 覆盖 C runtime 实现) + return if self._is_generic_function(Node): return FuncName, RawFuncName, func_meta = self._compute_func_name_meta(Node, ClassName)