From 5c00b8cd03cbfc516cce92229f3f4974d7549c24 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Fri, 16 Oct 2026 20:53:52 +0800 Subject: test(compiler): cover fixed CIE behavior and runtime boundaries Record independently traced outputs with pending human review. Keep standard syntax and naming conflicts as real failures. Co-Authored-By: Claude Fable 5.1 --- tests/i/calls/program.cps | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/i/calls/program.cps (limited to 'tests/i/calls/program.cps') diff --git a/tests/i/calls/program.cps b/tests/i/calls/program.cps new file mode 100644 index 0000000..0900b5c --- /dev/null +++ b/tests/i/calls/program.cps @@ -0,0 +1,31 @@ +PROCEDURE Change(BYREF A : INTEGER, B : INTEGER, BYVAL C : INTEGER) + A <- A + 1 + B <- B + 2 + C <- C + 100 +ENDPROCEDURE +FUNCTION Factorial(N : INTEGER) RETURNS INTEGER + IF N <= 1 THEN + RETURN 1 + ENDIF + RETURN N * Factorial(N - 1) +ENDFUNCTION +PROCEDURE LocalCopy(Values : ARRAY OF INTEGER) + Values[1] <- 99 +ENDPROCEDURE +PROCEDURE Shared(BYREF Values : ARRAY[1:2] OF INTEGER) + Values[2] <- Values[1] + 3 +ENDPROCEDURE +DECLARE A : INTEGER +DECLARE B : INTEGER +DECLARE C : INTEGER +DECLARE Values : ARRAY[1:2] OF INTEGER +A <- 1 +B <- 2 +C <- 3 +CALL Change(A, B, C) +Values[1] <- 4 +Values[2] <- 5 +CALL LocalCopy(Values) +CALL Shared(Values) +OUTPUT A, ":", B, ":", C, ":", Factorial(5) +OUTPUT Values[1], ":", Values[2] -- cgit v1.3.1-4-g156e