Clang Static Analysis
summary
Clang static analyzer performs path sensitive symbolic execution with a strong memory model and finds deep bugs but currently lacks cross‑translation‑unit analysis; Clang‑tidy does mainly syntax‑tree matching and safe rewrites for modernization and guidelines. Cod Checker provides a web UI, incremental and differential views and CI integration; the recommended workflow is local incremental runs plus nightly full analysis. Code changes that reduce macros and add annotations and custom asserts cut false positives and make the results actionable.
AI-written summary · about
chapters (24)
- 0:00Intro
- 0:19OUTLINE
- 2:57HALTING PROBLEM
- 4:01APPROXIMATION
- 5:16WHY BOTHER WITH STATIC ANALYSIS?
- 7:20ANALYZING C++ IS HARD
- 9:31STATIC ANALYSIS METHODS
- 11:00MATCHING THE SYNTAX TREE
- 12:27FLOW SENSITIVE ALGORITHMS
- 15:05PATH SENSITIVE ALGORITHMS
- 17:02SYMBOLIC EXECUTION
- 18:36MODELING MEMORY
- 19:51CONTEXT SENSITIVITY (INTRA/INTERPROCEDURAL)
- 20:33CROSS TRANSLATION UNIT ANALYSIS
- 22:05GLOBAL ANALYSIS
- 23:17SUMMARY BASED ANALYSIS
- 24:17OPEN SOURCE TOOLS
- 24:31CLANG STATIC ANALYZER
- 25:02CLANG TIDY
- 27:04HOW TO INTEGRATE INTO THE WORKFLOW?
- 32:04HOW TO USE CODECHECKER?
- 34:12WRITING STATIC ANALYSIS FRIENDLY CODE
- 43:17CONCLUSION
- 44:13REFERENCES
related talks
13mKeep your code sane with clang-tidy
01h 02mBringing clang-tidy magic to Visual Studio C++ Developers
57mLLVM Optimization Remarks
54mCompile-Time Validation in C++ Programming
28mC2Rust: Migrating Legacy Code to Rust
01h 00mTeaching old compilers new tricks
25mAre we *actually* IDE yet? A look on the Rust IDE Story
05mOur Most Treacherous Adversary
