Repository navigation
chore(tidy): make cert-err33-c a hard stop in .clang-tidy - #2259
Merged
Merged
Conversation
…acOS LTO keeps libc's close() (#2234) * fix(feature): name the CPU extractors' close callbacks close_fex so macOS LTO keeps libc's close() test_adm_coverage crashed with SIGSEGV on every macOS leg since #2208 gave a case a stderr capture that calls close(). Under lldb on the hosted runner the faulting function is an extractor's static close(VmafFeatureExtractor *) called with the file descriptor; the debug build without LTO passes. macOS's <unistd.h> declares close() with an assembler label, so in a full-LTO link (the release default) the IR linker keeps the declaration and a static close of another module apart without renaming the static, and both emit as _close: every C-library close() in the merged module branches into an extractor. The fdopen() failure paths of libvmaf.c, cambi.c and svm.cpp make that call too. glibc has no label, so Linux never showed it. The 17 callbacks are close_fex, the GPU twins' naming; nothing else changes. test_libc_named_internal_functions refuses a static C function named after a C library or POSIX function and reports the 17 on master. * test(ci): stub node in test-dedupe-gate.sh to isolate governance sequence test-dedupe-gate.sh verifies the standardsctl governance sequence and that dedupe scan failure is propagated by make verify-all. When verify-all gained the praetor documentation gates (docs-lint, docs-figures), make started executing node to lint all markdown files, causing timeouts and failures under host load. Stub node in the temporary directory alongside standardsctl so the unit contract test evaluates only the dedupe sequence.
* chore(tidy): make cert-err33-c a hard stop in .clang-tidy ADR-0694 asked for cert-err33-c in WarningsAsErrors once its violations were swept. The ADR-1142 cleanups did that sweep: a full run of the cpu, cuda, hip and sycl lanes in the dev container (clang-tidy 22.1.8) reports no cert-err33-c diagnostic, and the last arm64 report has none. The check is promoted now, so a new unchecked fclose() or fputs() fails Tidy Changed instead of joining a baseline. A planted fclose(f); gives exit 0 as a warning and exit 1 with the promotion. Closes T-CERT-ERR33-SWEEP.
lusoris
force-pushed
the
chore/tidy-cert-err33-errors
branch
from
October 6, 2026 11:23
9ff7c6e to
f327a87
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes
T-CERT-ERR33-SWEEP: promotescert-err33-c(an ignored return value of a standard-library call) toWarningsAsErrorsin.clang-tidy, as ADR-0694 asked once the violations were swept.scripts/dev/tidy-lane.sh --jobs 4 <lane>, clang-tidy 22.1.8, master1ec97c450):cpu0 findings,sycl0 (491 translation units),cuda475 findings and none iscert-err33-c(504 TUs),hip0 (505 TUs); the lastarm64report has none. The four sites ofcore/src/feature/adm.cthe row named were fixed by the ADR-1142 cleanups.fclose(f);exits 0 withcert-err33-cas a warning and 1 with--warnings-as-errors=cert-err33-c(host clang-tidy 23.1.1).docs/development/tidy-ratchet.mdstates the new hard stop; no baseline changes (all counts unchanged, so no--write).Reproducer
Deliverables (ADR-0108)
AGENTS.mdinvariant note — no rebase-sensitive invariants.changelog.d/changed/tidy-cert-err33-errors.md..clang-tidy.docs/development/tidy-ratchet.md.docs/state.md.tidy: cpu, cuda, hip, sycl lanes measured whole; no native file touched.