| 123456789101112131415161718 |
- MODULE local_array_bug;
- (* Repro: a local ARRAY inside a PROCEDURE is miscompiled by V3.
- Expected exit 60; observed 1 (as of v3-ast-slice5, 2026-10-03).
- Found while self-hosting the two-phase statement AST (IfStat used a
- local ARRAY OF AST.Node); moved to module scope to keep the fixpoint
- green. Module-level arrays work; local ones do not. *)
- VAR ExitCode : INTEGER;
- PROCEDURE P;
- VAR a : ARRAY [0..3] OF INTEGER; i : INTEGER;
- BEGIN
- i := 0;
- WHILE i < 4 DO a[i] := i * 10; INC(i) END;
- ExitCode := a[0] + a[1] + a[2] + a[3] (* 0+10+20+30 = 60 *)
- END P;
- BEGIN P END local_array_bug.
|