“Static Analysis and C++: More Than Lint"
summary
Claims that modern static analysis goes well beyond lint by finding subtle buffer overruns, always‑false branches and security flaws across large commercial C++ codebases, and shows concrete fixes: a memsetting‑the‑pointer overflow, a provably dead if due to an enum value, and a Heartbleed‑style overread. A portable analysis framework and checkers (matching PREfix/PREfast/ESPx and the compiler \/analyze feature) use fast syntactic and simple flow‑sensitive checks, annotations then replaced by richer types like array_view and array_buffer, emit SARIF, and scale with incremental, shared work and production use.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 4:25Value Proposition
- 9:43Scale Lint
- 13:10Fast turnaround
- 14:52Syntax checks
- 17:41Heuristics
- 35:30ArrayBuffer
- 44:00Manifesto
- 45:05Core Guidelines
- 45:50CPP Checkers
- 47:15Framework
- 48:00Seraph
- 51:05Execution Engine
- 56:30Annotations
related talks
01h 01mMake Friends with the Clang Static Analysis Tools
23mTargeted Static Analysis for OCaml C Stubs: Eliminating gremlins from the code
01h 39m“Thoughts on a more powerful and simpler C++ (5 of N)”
19mExploiting Sophisticated Static Analysis for Verilog
21mTowards Compiler-Guided Static Analysis
50mInside a static analyser: type system
16mTailored static tooling using Clang: Clazy
53mLocknote: How Badly Do We Want Correct Compilers?
