Toolchain batch (2026-07-07 review). The build sets no -Wall -Wextra
(dead code and unused results the review found by hand would have been
compiler-flagged); the entire network stack + fuzz targets are invisible to
CI; and the LEX code generator has drifted from its own committed output,
so regenerating any grammar silently changes error-path semantics.
CMakeLists.txt — only C23 + optional ASAN/fuzz flags; no warning
flags on any target. Hand-found consequences: unused int s
(TCP.c:11,39), unused locals (UDP.c:42-43), dead if (rc == 0) break;
(TCP.c:56).test/CMakeLists.txt:193 gates HTTP/UDP/TCP/CURL/POL tests behind
WITH_INET, but no option(WITH_INET) is declared anywhere and neither
CI job passes it → every network test (incl. MEM-009 leak regressions)
is skipped; WITH_FUZZ/WITH_ASAN likewise never built in CI.LEX.c:27-29 template emits fbreak; in error
actions while committed JSON.c.rl/URI.c.rl/HTTP.c.rl use goto _out;
— regen changes consumed-position semantics on callback failure.
LEX.c:78 u64 mark0[64] cap never validated vs rule count (silent
OOB in generated code for big grammars). Blocks ABC-011's regen.LEX.c:260-289 lex2rl — ~2.3 MB of a_pad stack scratch (256K+1M+1M);
abc.mkd prescribes a_carve/BASS. Overflows non-main threads.LEX.cli.c:17-21 + nfagrep.c:35-39 — sane(argc...) fires before
the usage message can print (debug), or is ignored (release): behavior
differs by build, usage is dead code either way. nfagrep also: 256-byte
snprintf path truncation (opens the wrong file), fp leak shape at
:70-71.INT.h:160-186 — the ABC_ALIGN branch does not compile (u8sfrom
token, C++-cast, flipped args, missing Feed twins). Dead config rot:
fix or delete.-Wall -Wextra (+ -Wshadow -Wconversion audit list) with a clean
build; a CI lane with WITH_INET+WITH_ASAN and fuzz smoke (build + N
iterations); LEX template reconciled with committed output (pick fbreak
OR goto, regen all three grammars, diff-verify); dead branches fixed or
deleted.goto _out, fbreak is wrong — ragel expands fbreak
to {p++; goto _out;}, off-by-one resume position on callback
failure, and inside EOF actions it leaves p = pe+1 → data[0]
past data[1], an invalid slice. Committed JSON/HTTP already used
goto _out (de-facto contract); ABC-011 regenned in that style.abc/INT.h → INT.h includes.