blaise/tests
Graeme Geldenhuys 7a88335393 hand source: emit short-circuit and/or to fix self-hosting fixpoint
EmitExpr for TBinaryExpr now checks for boAnd/boOr first and emits
short-circuit branches (jnz to sc_rhs/sc_end labels) before evaluating
either operand.  The eager `and` instruction previously emitted was
safe for bitwise use but caused a null-pointer crash when the compiler
compiled itself: TSymbolTable.FindType evaluated Sym.Kind even when Sym
was nil, because the code generator did not short-circuit the guard
`(Sym <> nil) and (Sym.Kind = skTypeAlias)`.

Stage-3 now produces byte-identical IR to stage-2 (fixpoint reached).
2026-04-27 09:06:37 +01:00
..
integration Add Phase 2: record/class types, ARC strings, RTL stubs, and grammar doc 2026-04-20 19:04:12 +01:00
blaise-compiler.pas hand source: emit short-circuit and/or to fix self-hosting fixpoint 2026-04-27 09:06:37 +01:00
phase2_milestone.pas Collapse Write+WriteLn pairs into multi-arg WriteLn in milestone tests 2026-04-22 23:19:55 +01:00
phase3_milestone.pas Add TObjectList and TStringList to RTL; fix string ARC via typed pointers 2026-04-23 12:32:59 +01:00