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