Current Path : /compat/linux/proc/68247/root/usr/src/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/proc/68247/root/usr/src/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h |
//== StoreRef.h - Smart pointer for store objects ---------------*- C++ -*--==// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file defined the type StoreRef. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_GR_STOREREF_H #define LLVM_CLANG_GR_STOREREF_H #include <cassert> namespace clang { namespace ento { /// Store - This opaque type encapsulates an immutable mapping from /// locations to values. At a high-level, it represents the symbolic /// memory model. Different subclasses of StoreManager may choose /// different types to represent the locations and values. typedef const void *Store; class StoreManager; class StoreRef { Store store; StoreManager &mgr; public: StoreRef(Store, StoreManager &); StoreRef(const StoreRef &); StoreRef &operator=(StoreRef const &); bool operator==(const StoreRef &x) const { assert(&mgr == &x.mgr); return x.store == store; } bool operator!=(const StoreRef &x) const { return !operator==(x); } ~StoreRef(); Store getStore() const { return store; } const StoreManager &getStoreManager() const { return mgr; } }; }} #endif