Building Cppcheck - What We Learned from 17 Years of Development
summary
Seventeen years of development produces concrete changes: a custom preprocessor now split out as SimpleCPP, a symbol database, syntax tree and a reusable generic data‑flow engine, plus a match-compiler transform that yields about an 80% speedup in token matching. Large-scale scans of Debian source code report roughly 94,000 errors (≈1,900 buffer overflows, 16,000 uninitialized vars, 8,000 null derefs). The project remains compiler‑agnostic, accepts opt‑in clang tooling, and ships an open-source core with a paid premium bundle.
AI-written summary · about
chapters (42)
- 0:00Intro
- 0:30Who is Daniel
- 4:04Preconditions for hobby projects
- 5:33First experiment
- 7:18First revision
- 8:13Why token list
- 9:27First year
- 11:52Preprocessing
- 13:14Symbol Database
- 13:39Instantiating Templates
- 15:19Syntax Tree
- 16:24Data Flow Analysis
- 16:55Simple CPP
- 18:25Value Type
- 18:57XWindows Bug
- 20:24Design Decisions
- 21:07Canonizations
- 21:59Warnings
- 24:20No false positives
- 25:44Correct errors
- 27:34Keeping it simple
- 28:44Synthetic test cases
- 29:37Testing
- 31:39Reports
- 32:32Source Code
- 33:41Working Fulltime
- 34:22Starting a Company
- 35:50Contributions
- 36:48Downloads
- 37:35Main contributors
- 38:01Summary
- 38:25Compiler agnostic
- 39:42Performance
- 40:54Language features
- 41:30Preprocessor
- 42:48Upcoming C Features
- 44:11Owning a company
- 45:09sarif
- 45:53foretools
- 47:04static analysis
- 49:18design pattern checks
- 50:13integration with other compilers
related talks
37mSonarSource: The Power of Clean Code
01h 22mC++ ecosystem: For better, for worse
01h 16mSegment 4
01h 17mDevelopment strategies: You've written a library - now what?
01h 02mHow you can make a Boost C++ Library
18mBuilding pi in a World of Slop
34mIt’s All Just Functions And Variables
57mTypelevel in 2016
