]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / llvm / tools / clang / include / clang / StaticAnalyzer / Core / PathSensitive / ProgramState_Fwd.h
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
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