From f7f5df01c416a10e3eb9508a7a7150c792a8b4ca Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 15:22:23 +0000 Subject: feat(codegen): allow identical EXTERN redeclarations across files Repeated EXTERN declarations with the same signature share one C symbol, as C declarations do; conflicting signatures are errors. Co-Authored-By: Claude Opus 5.5 --- tests/i/multifile-extern/program.cps | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 tests/i/multifile-extern/program.cps (limited to 'tests/i/multifile-extern/program.cps') diff --git a/tests/i/multifile-extern/program.cps b/tests/i/multifile-extern/program.cps new file mode 100644 index 0000000..7a0cd2d --- /dev/null +++ b/tests/i/multifile-extern/program.cps @@ -0,0 +1,6 @@ +// Both files declare the same C function; aliases of int are interchangeable. +INCLUDE "lib.cps" +INCLUDE_OBJ "__libc" +EXTERN "C" EXTERN_FUNCTION abs(C_INT) RETURNS C_INT +OUTPUT abs((C_INT)-3) +OUTPUT Twice((C_INT)-4) -- cgit v1.3.1-4-g156e