--- id: "bug-1599" status: "fixed" status_updated: "2026-09-24" status_note: "sim_loop.c comment reworded" component: "scheduler" severity: "unknown" timestamp: "2026-08-20T02:50:00Z" last_seen: "2026-09-19T09:00:00Z" occurrences: 1 files: ["src/scheduler/testsuite/test_no_bare_printf.c (new regression test) flags src/scheduler/src/sim_loop.c"] tags: ["scheduler", "test-only", "false-positive", "sim_loop.c", "test_no_bare_printf", "text-scan", "regression-test"] related: [] legacy: true --- # bug-1599: sched_no_bare_printf_test / test_scheduler_src_has_no_bare_printf_calls FAIL… ## Description sched_no_bare_printf_test / test_scheduler_src_has_no_bare_printf_calls FAIL: '.../scheduler/src/sim_loop.c calls bare printf() -- xce_scheduler link-wraps printf ...' -- even though sim_print_decision() in sim_loop.c already correctly uses fprintf(stdout, ...) for all 3 PEND/DISPATCH/PREEMPT lines (verified via grep: lines 398/402/406 all fprintf(stdout, ...), zero bare printf( calls in actual code). ## Environment _Not recorded (migrated from buglog.json)._ ## Reproduction _Not recorded (migrated from buglog.json)._ ## Root cause The new regression test's scan_dir_for_bare_printf()/contains_bare_printf_call() (test_no_bare_printf.c) is a naive whole-file text scan with NO comment/string-literal awareness (documented as such in its own header comment, matching test_core_isolation.c's precedent). The doc comment directly above sim_print_decision() in sim_loop.c (lines 375-387, added as part of this same fix, explaining WHY fprintf(stdout,...) is used instead of printf()) contains the literal prose substrings ' plain printf() (2026-08-20 fix)' (line 375) and ' plain printf() call' (line 377) -- both have a space immediately before 'printf(', which the scanner's rule (char before 'printf(' must not be letter/digit/underscore) matches as a bare-printf violation. The scanner cannot distinguish prose describing printf() from an actual call to it. ## Fix NOT YET FIXED -- reported to caller for triage per explicit instruction not to fix. Likely fix: reword the sim_loop.c doc comment (lines 375/377) to avoid the literal pattern 'printf(' immediately -- e.g. write it as "printf" and "(" separately, or reference the wrapped __wrap_printf() symbol name instead of the bare word, or otherwise break up the substring so the naive scanner does not match it. Do NOT weaken the scanner itself to add comment-awareness without considering that test_core_isolation.c deliberately uses the same simple/strict genre. ## Verification _Not recorded (migrated from buglog.json)._ ## References _Not recorded (migrated from buglog.json)._