From 58e2cfe505ba9942524f06bb1b1419e6c579efad Mon Sep 17 00:00:00 2001 From: _ov4 Date: Tue, 13 Oct 2026 08:44:16 +0000 Subject: fix: preserve 64-bit integers in NUM_TO_STR Co-Authored-By: Claude Fable 5.1 --- AGENTS/PITFALLS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'AGENTS') diff --git a/AGENTS/PITFALLS.md b/AGENTS/PITFALLS.md index 6d1b196..fd53883 100644 --- a/AGENTS/PITFALLS.md +++ b/AGENTS/PITFALLS.md @@ -29,8 +29,8 @@ test programs. must be a variable"; annotate `BYVAL` explicitly. - **`/` always yields REAL** (double FDiv), even for two INTEGERs; integer division is DIV/MOD only. CHR returns a STRING (2-byte heap buffer), not CHAR. STR_TO_NUM always - returns REAL. NUM_TO_STR formats i64 with sprintf `"%d"` — corrupts values over 32 - bits. + returns REAL. NUM_TO_STR formats INTEGER with sprintf `"%lld"` (the full signed + i64 range) and REAL with `"%f"`. - **`getExprTypeInfo` returns nullptr** for expressions it can't classify (null-check it at any new call site) and internally defaults to INTEGER for arithmetic binaries and unknown-function calls; OUTPUT reports an error for a nullptr result. -- cgit v1.3.1-4-g156e