diff options
Diffstat (limited to 'include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h')
-rw-r--r-- | include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h index c588908804..5839ad9382 100644 --- a/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h +++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h @@ -10,11 +10,31 @@ #ifndef LLVM_CLANG_PROGRAMSTATE_FWD_H #define LLVM_CLANG_PROGRAMSTATE_FWD_H +#include "llvm/ADT/IntrusiveRefCntPtr.h" + namespace clang { namespace ento { class ProgramState; class ProgramStateManager; - typedef const ProgramState* ProgramStateRef; + void ProgramStateRetain(const ProgramState *state); + void ProgramStateRelease(const ProgramState *state); +} +} + +namespace llvm { + template <> struct IntrusiveRefCntPtrInfo<const clang::ento::ProgramState> { + static void retain(const clang::ento::ProgramState *state) { + clang::ento::ProgramStateRetain(state); + } + static void release(const clang::ento::ProgramState *state) { + clang::ento::ProgramStateRelease(state); + } + }; +} + +namespace clang { +namespace ento { + typedef llvm::IntrusiveRefCntPtr<const ProgramState> ProgramStateRef; } } |