diff options
| author | _ov4 <ov4@ov4.one> | 2026-10-16 20:53:52 +0800 |
|---|---|---|
| committer | _ov4 <ov4@ov4.one> | 2026-10-16 20:53:52 +0800 |
| commit | 5c00b8cd03cbfc516cce92229f3f4974d7549c24 (patch) | |
| tree | 9d13c180dc345b3e27d241ac56de2aef99dea739 /tests/i/calls/program.cps | |
| parent | 1db81d50e8c664d0707491699485cfb23a0b5907 (diff) | |
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 <noreply@anthropic.com>
Diffstat (limited to 'tests/i/calls/program.cps')
| -rw-r--r-- | tests/i/calls/program.cps | 31 |
1 files changed, 31 insertions, 0 deletions
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] |
