1#ifndef LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_LIFETIMEMODELING_H
2#define LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_LIFETIMEMODELING_H
3
4#include "clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h"
5#include "clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h"
6#include "clang/StaticAnalyzer/Core/PathSensitive/SVals.h"
7#include <vector>
8
9namespace clang::ento::lifetime_modeling {
10/// Returns the set of lifetime sources bound to \p Source that are dangling
11/// stack regions.
12std::vector<const MemRegion *>
13getDanglingRegionsAfterReturn(SVal Source, ProgramStateRef State,
14 CheckerContext &C);
15
16/// Returns true if the underlying MemRegion is deallocated.
17bool isDeallocated(ProgramStateRef State, const MemRegion *Region);
18} // namespace clang::ento::lifetime_modeling
19
20#endif // LLVM_CLANG_LIB_STATICANALYZER_CHECKERS_LIFETIMEMODELING_H
21