• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_FWD_H
11 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_FWD_H
12 
13 #include "clang/Basic/LLVM.h"
14 #include "llvm/ADT/IntrusiveRefCntPtr.h"
15 
16 namespace clang {
17 namespace ento {
18   class ProgramState;
19   class ProgramStateManager;
20   void ProgramStateRetain(const ProgramState *state);
21   void ProgramStateRelease(const ProgramState *state);
22 }
23 }
24 
25 namespace 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 
36 namespace clang {
37 namespace ento {
38   typedef IntrusiveRefCntPtr<const ProgramState> ProgramStateRef;
39 }
40 }
41 
42 #endif
43 
44