clang API Documentation

ProgramState_Fwd.h
Go to the documentation of this file.
00001 //== ProgramState_Fwd.h - Incomplete declarations of ProgramState -*- C++ -*--=/
00002 //
00003 //                     The LLVM Compiler Infrastructure
00004 //
00005 // This file is distributed under the University of Illinois Open Source
00006 // License. See LICENSE.TXT for details.
00007 //
00008 //===----------------------------------------------------------------------===//
00009 
00010 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_FWD_H
00011 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_FWD_H
00012 
00013 #include "clang/Basic/LLVM.h"
00014 #include "llvm/ADT/IntrusiveRefCntPtr.h"
00015 
00016 namespace clang {
00017 namespace ento {
00018   class ProgramState;
00019   class ProgramStateManager;
00020   void ProgramStateRetain(const ProgramState *state);
00021   void ProgramStateRelease(const ProgramState *state);
00022 }
00023 }
00024 
00025 namespace llvm {
00026   template <> struct IntrusiveRefCntPtrInfo<const clang::ento::ProgramState> {
00027     static void retain(const clang::ento::ProgramState *state) {
00028       clang::ento::ProgramStateRetain(state);
00029     }
00030     static void release(const clang::ento::ProgramState *state) {
00031       clang::ento::ProgramStateRelease(state);
00032     }
00033   };
00034 }
00035 
00036 namespace clang {
00037 namespace ento {
00038   typedef IntrusiveRefCntPtr<const ProgramState> ProgramStateRef;
00039 }
00040 }
00041 
00042 #endif
00043