Change #259212
| Category | curl |
| Changed by | Viktor Szakats <commit@vsz.me> |
| Changed at | Fri 27 Feb 2026 14:08:59 |
| Repository | https://github.com/curl/curl.git |
| Project | curl |
| Branch | master |
| Revision | ce4db9c2efca0bd89e556e231d940c988d84a606 |
Comments
GHA/linux: replace scan-build with clang-tidy `scan-build` is a (Perl) wrapper around clang's built-in `--analyze` option. Which look similar or identical to clang-tidy checkers under the `clang-analyzer-*` namespace: https://clang.llvm.org/docs/ClangStaticAnalyzer.html Unless somebody has other information, it appears redundant to run scan-build in parallel with clang-tidy in CI, now that the latter is working reliably and with good performance for all curl components. Another scan-build issue is the lack of a markup to suppress false positives. It ignores `NOLINT`, yet finds the same false positives as clang-tidy. This happens with scan-build v20+. v18 is silent, but it's a blocker to upgrade to a newer version. scan-build may still be a useful when combined with autotools, where clang-tidy support is incomplete, slow (no parallelism), and uses a distinct make target, which does not build binaries in the same pass. But, scan-build also lacks extra checkers that are now enabled for clang-tidy. The clang-tidy job is also 30-40s faster than the one it replaced. Also: - drop scan-build job configured the same way as a clang-tidy one. CI time saved: 6m30s - bump to clang-20 (from 18) in the replacement job. - build tests in the replacement job. To verify a cmake command-line reconstruction issue only hit in this job in CI. CI time cost: 1m40s - replacement job caught a minor, new, issue. Ref: b2076d3c2f5386068d9b0199f25a81147784d8ac #20752 - drop unused scan-build logic. Bug: https://github.com/curl/curl/pull/20732#issuecomment-3963873838 Ref: https://github.com/curl/curl/pull/20732#issuecomment-3967479228 Closes #20751
Changed files
- .github/workflows/linux.yml