user-defined statically-checked call graph constraints in C++
summary
A static analyzer called Funqual parses C++17 with libClang, builds a whole-program call graph, and enforces user-written rules like restrict_indirect_call. It tracks direct and indirect qualifiers, requires matching override and assignment types, and asks programmers to annotate function pointers or infer taint. Tool flags call chains and assignment/override violations, finds real bugs in a 100Hz robotics codebase and an early kernel, and runs on 20k lines in ~210s; sources and rules live on GitHub.
AI-written summary · about
chapters (8)
- 0:00Introduction and motivation
- 2:18Problem statement and rules
- 3:49Building the solution
- 5:51Handling function pointers
- 9:11The Phone Call tool
- 11:43Real-world applications
- 14:05Limitations and future work
- 14:48Q&A session
related talks
13mFast Constraint Synthesis for C++ Function Templates
51mCode Analysis ++
16mTailored static tooling using Clang: Clazy
41mC++ Overload Inspector - A Tool for Analyzing and Profiling Overloaded Function Calls
30mC to checked C by 3c
51mCompile-time tools supporting generic programming in C++
01h 01mMake Friends with the Clang Static Analysis Tools
43mEverything I learned about static analysis and program safety in C++
