ProgramState_Fwd.h revision a5888f61be9f8d76e9b48a453dbced50523bd2e0
1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync//== ProgramState_Fwd.h - Incomplete declarations of ProgramState -*- C++ -*--=/ 2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// 3baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// The LLVM Compiler Infrastructure 4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// 5baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// This file is distributed under the University of Illinois Open Source 6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// License. See LICENSE.TXT for details. 7baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// 8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync//===----------------------------------------------------------------------===// 9baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#ifndef LLVM_CLANG_PROGRAMSTATE_FWD_H 11baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#define LLVM_CLANG_PROGRAMSTATE_FWD_H 12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#include "llvm/ADT/IntrusiveRefCntPtr.h" 14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 15baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace clang { 16baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace ento { 17baa3858d3f5d128a5c8466b700098109edcad5f2repo sync class ProgramState; 18baa3858d3f5d128a5c8466b700098109edcad5f2repo sync class ProgramStateManager; 19baa3858d3f5d128a5c8466b700098109edcad5f2repo sync void ProgramStateRetain(const ProgramState *state); 20baa3858d3f5d128a5c8466b700098109edcad5f2repo sync void ProgramStateRelease(const ProgramState *state); 21baa3858d3f5d128a5c8466b700098109edcad5f2repo sync} 22baa3858d3f5d128a5c8466b700098109edcad5f2repo sync} 23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 24baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace llvm { 25baa3858d3f5d128a5c8466b700098109edcad5f2repo sync template <> struct IntrusiveRefCntPtrInfo<const clang::ento::ProgramState> { 26baa3858d3f5d128a5c8466b700098109edcad5f2repo sync static void retain(const clang::ento::ProgramState *state) { 27baa3858d3f5d128a5c8466b700098109edcad5f2repo sync clang::ento::ProgramStateRetain(state); 28baa3858d3f5d128a5c8466b700098109edcad5f2repo sync } 29baa3858d3f5d128a5c8466b700098109edcad5f2repo sync static void release(const clang::ento::ProgramState *state) { 30baa3858d3f5d128a5c8466b700098109edcad5f2repo sync clang::ento::ProgramStateRelease(state); 31baa3858d3f5d128a5c8466b700098109edcad5f2repo sync } 32baa3858d3f5d128a5c8466b700098109edcad5f2repo sync }; 33baa3858d3f5d128a5c8466b700098109edcad5f2repo sync} 34baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 35baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace clang { 36baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace ento { 37baa3858d3f5d128a5c8466b700098109edcad5f2repo sync typedef llvm::IntrusiveRefCntPtr<const ProgramState> ProgramStateRef; 38baa3858d3f5d128a5c8466b700098109edcad5f2repo sync} 39baa3858d3f5d128a5c8466b700098109edcad5f2repo sync} 40baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 41baa3858d3f5d128a5c8466b700098109edcad5f2repo sync#endif 42baa3858d3f5d128a5c8466b700098109edcad5f2repo sync 43baa3858d3f5d128a5c8466b700098109edcad5f2repo sync