Make Friends with the Clang Static Analysis Tools
summary
An overview of open-source C++ static analysis tools with emphasis on Clang-based tools, explaining the algorithms, methods and heuristics they use and their limitations. Covers how those techniques lead to false positives and offers guidelines for making libraries more static-analysis-friendly. Also includes a short hands-on tutorial on using Clang static analysis tools and integrating them into a development workflow.
AI-written summary · about
chapters (25)
- 0:00Intro
- 0:16OUTLINE
- 2:03HALTING PROBLEM
- 3:19APPROXIMATION
- 4:42WHY BOTHER WITH STATIC ANALYSIS
- 5:58ANALYZING C++ IS HARD
- 8:29STATIC ANALYSIS METHODS
- 8:54TEXTUAL PATTERN MATCHING
- 9:32MATCHING THE SYNTAX TREE
- 10:40FLOW SENSITIVE ALGORITHMS
- 14:03PATH SENSITIVE ALGORITHMS
- 15:46SYMBOLIC EXECUTION
- 17:27MODELING MEMORY
- 19:06CONTEXT SENSITIVITY (INTRA /INTERPROCEDURAL)
- 20:14CROSS TRANSLATION UNIT ANALYSIS
- 22:10GLOBAL ANALYSIS
- 22:44SUMMARY BASED ANALYSIS
- 24:37CLANG STATIC ANALYZER
- 25:55CLANG TIDY
- 27:08HOW TO INTEGRATE INTO THE WORKFLOWE
- 34:46HOW TO USE CODECHECKER
- 35:54WRITING STATIC ANALYSIS FRIENDLY CODE
- 40:37HANDLING FALSE POSITIVES
- 45:38CONCLUSION
- 57:51OPEN SOURCE TOOLS
related talks
29m“The Current State of (free) Static Analysis"
36mThings I learned from the static analyzer
01h 01m“Static Analysis and C++: More Than Lint"
16mTailored static tooling using Clang: Clazy
43mEverything I learned about static analysis and program safety in C++
01h 00mStatic Analysis and Program Safety in C++: Making it Real
58mSecurity Static Analysis - Avoiding an Angry Mob of Engineers
14mTool Talk: CodeChecker
