From e1f41ed9fafaf7eb4f2da6878a3fabcf2f7c021e Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 09:13:32 +0000 Subject: feat(driver): compile multiple source files with INCLUDE visibility Reject builds without an entry program and duplicate cross-file definitions. Preserve source order for each unit's own constants and import visible exports. Co-Authored-By: Claude Opus 5.5 --- lib/CodeGen/FunctionGen.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib/CodeGen/FunctionGen.cc') diff --git a/lib/CodeGen/FunctionGen.cc b/lib/CodeGen/FunctionGen.cc index b66b55a..cc88a78 100644 --- a/lib/CodeGen/FunctionGen.cc +++ b/lib/CodeGen/FunctionGen.cc @@ -106,7 +106,8 @@ void FunctionGen::createArgumentAllocas(Function *F, const std::vectorsecond; + return It == Signatures.end() || (Visible && !Visible(It->second.OwnerUnit)) + ? nullptr : &It->second; } Function *FunctionGen::emitPrototype(PrototypeAST *Proto) { @@ -134,6 +135,7 @@ Function *FunctionGen::emitPrototype(PrototypeAST *Proto) { } FuncSig Sig; + Sig.OwnerUnit = CurrentUnit; Sig.Name = Proto->getLinkName(); Sig.ReturnTypeName = Proto->getReturnType(); -- cgit v1.3.1-4-g156e