What problem does it solve?
This Skill helps you reason about security and correctness issues in code by performing LLVM-based static analysis, so you can detect vulnerabilities and risky behaviors without executing the program.
Core Features & Use Cases
- Dataflow analysis: perform forward and backward analyses plus may/must approximations to understand how values propagate.
- Control flow analysis: use dominator and post-dominator trees and loop information to model program structure and dependencies.
- Pointer and taint analysis: apply alias/points-to reasoning (including Andersen/Steensgaard-style approaches) and implement source-to-sink taint propagation for information-flow and vulnerability detection.
- Program verification workflows: build data dependence graphs and slicing to support auditing, debugging, and research-grade static reasoning.
- Security applications: flag patterns like buffer overflows (e.g., via range checks around GEP/indexing), use-after-free (allocation/deallocation tracking), and sensitive data leaks to dangerous sinks.
Quick Start
Use the static-analysis skill to design and implement an LLVM pass that propagates taint from specified sources to sensitive sinks and reports potential vulnerabilities for each function.