Part four extends LifetimeCheck through store and load operations, structured control flow, scope cleanup, coroutine tasks, return safety, and implementation patterns.
Topic
cpp
Part two follows the LifetimeCheck pass architecture, its type categories, points-to sets, allocation classification, and operation dispatch.
Part one introduces ClangIR as an MLIR-based representation for C++ static analysis and uses LifetimeCheck to motivate the series.
Part three shows how ClangIR AST attributes, move detection, smart pointer handling, and moved-from state tracking detect use-after-move bugs.
Notes on strict weak ordering and why violating std::sort comparator requirements can corrupt results.