Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:37:09

0001 //== ProgramState_Fwd.h - Incomplete declarations of ProgramState -*- C++ -*--=/
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_FWD_H
0010 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_PROGRAMSTATE_FWD_H
0011 
0012 #include "clang/Basic/LLVM.h"
0013 #include "llvm/ADT/IntrusiveRefCntPtr.h"
0014 
0015 namespace clang {
0016 namespace ento {
0017   class ProgramState;
0018   class ProgramStateManager;
0019   void ProgramStateRetain(const ProgramState *state);
0020   void ProgramStateRelease(const ProgramState *state);
0021 }
0022 }
0023 
0024 namespace llvm {
0025   template <> struct IntrusiveRefCntPtrInfo<const clang::ento::ProgramState> {
0026     static void retain(const clang::ento::ProgramState *state) {
0027       clang::ento::ProgramStateRetain(state);
0028     }
0029     static void release(const clang::ento::ProgramState *state) {
0030       clang::ento::ProgramStateRelease(state);
0031     }
0032   };
0033 }
0034 
0035 namespace clang {
0036 namespace ento {
0037   typedef IntrusiveRefCntPtr<const ProgramState> ProgramStateRef;
0038 }
0039 }
0040 
0041 #endif
0042