reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  217 class UndefinedVal : public SVal {
  229 class DefinedOrUnknownSVal : public SVal {
  284 class KnownSVal : public SVal {

Declarations

tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
   52 class SVal;

References

include/llvm/ADT/ArrayRef.h
   43     using iterator = const T *;
   44     using const_iterator = const T *;
   50     const T *Data = nullptr;
   66     /*implicit*/ ArrayRef(const T &OneElt)
   70     /*implicit*/ ArrayRef(const T *data, size_t length)
   74     ArrayRef(const T *begin, const T *end)
   74     ArrayRef(const T *begin, const T *end)
   81     /*implicit*/ ArrayRef(const SmallVectorTemplateCommon<T, U> &Vec)
   87     /*implicit*/ ArrayRef(const std::vector<T, A> &Vec)
   92     /*implicit*/ constexpr ArrayRef(const std::array<T, N> &Arr)
   97     /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {}
  100     /*implicit*/ ArrayRef(const std::initializer_list<T> &Vec)
  145     const T *data() const { return Data; }
  151     const T &front() const {
  157     const T &back() const {
  163     template <typename Allocator> ArrayRef<T> copy(Allocator &A) {
  178     ArrayRef<T> slice(size_t N, size_t M) const {
  184     ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); }
  187     ArrayRef<T> drop_front(size_t N = 1) const {
  193     ArrayRef<T> drop_back(size_t N = 1) const {
  200     template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const {
  206     template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const {
  211     ArrayRef<T> take_front(size_t N = 1) const {
  218     ArrayRef<T> take_back(size_t N = 1) const {
  226     template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const {
  232     template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const {
  239     const T &operator[](size_t Index) const {
  249     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  257     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  263     std::vector<T> vec() const {
  270     operator std::vector<T>() const {
include/llvm/ADT/DenseMap.h
   40 struct DenseMapPair : public std::pair<KeyT, ValueT> {
   45   ValueT &getSecond() { return std::pair<KeyT, ValueT>::second; }
   46   const ValueT &getSecond() const { return std::pair<KeyT, ValueT>::second; }
   66   using mapped_type = ValueT;
   69   using iterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT>;
   71       DenseMapIterator<KeyT, ValueT, KeyInfoT, BucketT, true>;
  185   ValueT lookup(const_arg_type_t<KeyT> Val) const {
  195   std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {
  202   std::pair<iterator, bool> insert(std::pair<KeyT, ValueT> &&KV) {
  249   std::pair<iterator, bool> insert_as(std::pair<KeyT, ValueT> &&KV,
  299   ValueT &operator[](const KeyT &Key) {
  311   ValueT &operator[](KeyT &&Key) {
  380         ::new (&DestBucket->getSecond()) ValueT(std::move(B->getSecond()));
  392       const DenseMapBase<OtherBaseT, KeyT, ValueT, KeyInfoT, BucketT> &other) {
  520     ::new (&TheBucket->getSecond()) ValueT(std::forward<ValueArgs>(Values)...);
  526                                       ValueT &&Value, LookupKeyT &Lookup) {
  684 class DenseMap : public DenseMapBase<DenseMap<KeyT, ValueT, KeyInfoT, BucketT>,
  685                                      KeyT, ValueT, KeyInfoT, BucketT> {
  690   using BaseT = DenseMapBase<DenseMap, KeyT, ValueT, KeyInfoT, BucketT>;
 1163   using ConstIterator = DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, true>;
 1199       const DenseMapIterator<KeyT, ValueT, KeyInfoT, Bucket, IsConstSrc> &I)
include/llvm/ADT/FoldingSet.h
  221   static void Profile(const T &X, FoldingSetNodeID &ID) {
  224   static void Profile(T &X, FoldingSetNodeID &ID) {
  232   static inline bool Equals(T &X, const FoldingSetNodeID &ID, unsigned IDHash,
  240   static inline unsigned ComputeHash(T &X, FoldingSetNodeID &TempID);
  250   : public DefaultFoldingSetTrait<T> {};
  329   inline void Add(const T &x) { FoldingSetTrait<T>::Profile(x, *this); }
  329   inline void Add(const T &x) { FoldingSetTrait<T>::Profile(x, *this); }
include/llvm/ADT/ImmutableList.h
   30   T Head;
   34   ImmutableListImpl(ElemT &&head, const ImmutableListImpl *tail = nullptr)
   41   const T& getHead() const { return Head; }
   44   static inline void Profile(FoldingSetNodeID& ID, const T& H,
   66   using value_type = T;
   67   using Factory = ImmutableListFactory<T>;
   69   static_assert(std::is_trivially_destructible<T>::value,
   73   const ImmutableListImpl<T>* X;
   79   ImmutableList(const ImmutableListImpl<T>* x = nullptr) : X(x) {}
   81   const ImmutableListImpl<T>* getInternalPointer() const {
   86     const ImmutableListImpl<T>* L = nullptr;
  114   bool contains(const T& V) const {
  132   const T& getHead() const {
  150   using ListTy = ImmutableListImpl<T>;
  176   LLVM_NODISCARD ImmutableList<T> concat(ElemT &&Head, ImmutableList<T> Tail) {
  176   LLVM_NODISCARD ImmutableList<T> concat(ElemT &&Head, ImmutableList<T> Tail) {
  176   LLVM_NODISCARD ImmutableList<T> concat(ElemT &&Head, ImmutableList<T> Tail) {
  199   LLVM_NODISCARD ImmutableList<T> add(ElemT &&Data, ImmutableList<T> L) {
  199   LLVM_NODISCARD ImmutableList<T> add(ElemT &&Data, ImmutableList<T> L) {
  199   LLVM_NODISCARD ImmutableList<T> add(ElemT &&Data, ImmutableList<T> L) {
  204   LLVM_NODISCARD ImmutableList<T> emplace(ImmutableList<T> Tail,
  204   LLVM_NODISCARD ImmutableList<T> emplace(ImmutableList<T> Tail,
  209   ImmutableList<T> getEmptyList() const {
  214   ImmutableList<T> create(ElemT &&Data) {
include/llvm/ADT/ImmutableMap.h
   28   using value_type = const std::pair<T,S>;
   32   using data_type = const S;
   33   using data_type_ref = const S&;
   51     return ImutContainerInfo<S>::isEqual(L,R);
   56     ImutContainerInfo<S>::Profile(ID, V.second);
  284   explicit ImmutableMapRef(const ImmutableMap<KeyT, ValT> &X,
  285                            typename ImmutableMap<KeyT, ValT>::Factory &F)
  342   ImmutableMap<KeyT, ValT> asImmutableMap() const {
include/llvm/ADT/ImmutableSet.h
  840   using value_type = const T;
  841   using value_type_ref = const T&;
  844     FoldingSetTrait<T>::Profile(X,ID);
  909 struct ImutContainerInfo : public ImutProfileInfo<T> {
  910   using value_type = typename ImutProfileInfo<T>::value_type;
  911   using value_type_ref = typename ImutProfileInfo<T>::value_type_ref;
include/llvm/ADT/Optional.h
  144     T value;
  160   explicit OptionalStorage(in_place_t, Args &&... args)
  161       : value(std::forward<Args>(args)...), hasVal(true) {}
  172   T &getValue() LLVM_LVALUE_FUNCTION noexcept {
  176   T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
  181   T &&getValue() && noexcept {
  206       ::new ((void *)std::addressof(value)) T(std::move(y));
  216   optional_detail::OptionalStorage<T> Storage;
  219   using value_type = T;
  224   Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
  227   Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
  230   Optional &operator=(T &&y) {
  241   static inline Optional create(const T *y) {
  245   Optional &operator=(const T &y) {
  253   const T *getPointer() const { return &Storage.getValue(); }
  254   T *getPointer() { return &Storage.getValue(); }
  255   const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  256   T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  260   const T *operator->() const { return getPointer(); }
  261   T *operator->() { return getPointer(); }
  262   const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
  263   T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
  266   constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
  271   T &&getValue() && { return std::move(Storage.getValue()); }
  272   T &&operator*() && { return std::move(Storage.getValue()); }
  275   T getValueOr(U &&value) && {
include/llvm/ADT/SmallVector.h
   75   AlignedCharArrayUnion<T> FirstEl;
  114   using value_type = T;
  115   using iterator = T *;
  116   using const_iterator = const T *;
  121   using reference = T &;
  122   using const_reference = const T &;
  123   using pointer = T *;
  124   using const_pointer = const T *;
  259 class SmallVectorTemplateBase<T, true> : public SmallVectorTemplateCommon<T> {
  264   static void destroy_range(T *, T *) {}
  264   static void destroy_range(T *, T *) {}
  299   void grow(size_t MinSize = 0) { this->grow_pod(MinSize, sizeof(T)); }
  302   void push_back(const T &Elt) {
  305     memcpy(reinterpret_cast<void *>(this->end()), &Elt, sizeof(T));
  315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
  316   using SuperClass = SmallVectorTemplateBase<T>;
  357   void resize(size_type N, const T &NV) {
  374   LLVM_NODISCARD T pop_back_val() {
  397   void append(size_type NumInputs, const T &Elt) {
  405   void append(std::initializer_list<T> IL) {
  412   void assign(size_type NumElts, const T &Elt) {
  429   void assign(std::initializer_list<T> IL) {
  467   iterator insert(iterator I, T &&Elt) {
  497   iterator insert(iterator I, const T &Elt) {
  526   iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
  637   void insert(iterator I, std::initializer_list<T> IL) {
  820   AlignedCharArrayUnion<T> InlineElts[N];
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  846   explicit SmallVector(size_t Size, const T &Value = T())
  865   SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
  884   SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/ADT/iterator_range.h
   38   iterator_range(Container &&c)
include/llvm/Support/AlignOf.h
   30   T t;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/type_traits.h
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
  218   std::string VisitSVal(SVal V) {
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
  444   void markInteresting(SVal V, bugreporter::TrackingKind TKind =
  450   bool isInteresting(SVal V) const;
  459   Optional<bugreporter::TrackingKind> getInterestingnessKind(SVal V) const;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
  127   SVal V;
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
  197                              const SVal &location, bool isLoad, const Stmt *S,
  213                          const SVal &location, const SVal &val, const Stmt *S,
  213                          const SVal &location, const SVal &val, const Stmt *S,
  289                                  SVal Target, CheckerContext &C) {
  462                                          const SVal &cond,
  554   SVal Location;
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
   59   using Func = RET (*)(void *, Ps...);
   68   RET operator()(Ps... ps) const {
  289                               SVal location,
  298                           SVal location, SVal val,
  298                           SVal location, SVal val,
  325   void runCheckersForNewAllocator(const CXXNewExpr *NE, SVal Target,
  393                                            SVal Cond, bool Assumption);
  451       CheckerFn<void (const SVal &location, bool isLoad, const Stmt *S,
  455       CheckerFn<void (const SVal &location, const SVal &val, const Stmt *S,
  455       CheckerFn<void (const SVal &location, const SVal &val, const Stmt *S,
  470       CheckerFn<void (const CXXNewExpr *, SVal, CheckerContext &)>;
  492       CheckerFn<ProgramStateRef (ProgramStateRef, const SVal &cond,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
   43   llvm::ImmutableList<SVal> L;
   46   CompoundValData(QualType t, llvm::ImmutableList<SVal> l) : T(t), L(l) {
   50   using iterator = llvm::ImmutableList<SVal>::iterator;
   56                       llvm::ImmutableList<SVal> L);
  117   llvm::ImmutableList<SVal>::Factory SValListFactory;
  222                                             llvm::ImmutableList<SVal> Vals);
  231   llvm::ImmutableList<SVal> getEmptySValList() {
  235   llvm::ImmutableList<SVal> prependSVal(SVal X, llvm::ImmutableList<SVal> L) {
  235   llvm::ImmutableList<SVal> prependSVal(SVal X, llvm::ImmutableList<SVal> L) {
  235   llvm::ImmutableList<SVal> prependSVal(SVal X, llvm::ImmutableList<SVal> L) {
  257   const std::pair<SVal, uintptr_t>&
  258   getPersistentSValWithData(const SVal& V, uintptr_t Data);
  260   const std::pair<SVal, SVal>&
  260   const std::pair<SVal, SVal>&
  261   getPersistentSValPair(const SVal& V1, const SVal& V2);
  261   getPersistentSValPair(const SVal& V1, const SVal& V2);
  263   const SVal* getPersistentSVal(SVal X);
  263   const SVal* getPersistentSVal(SVal X);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
  182   SVal getSVal(const Stmt *S) const {
  186   using ValueList = SmallVectorImpl<SVal>;
  268   virtual SVal getArgSVal(unsigned Index) const;
  286   SVal getReturnValue() const;
  350   using FrameBindingTy = std::pair<SVal, SVal>;
  350   using FrameBindingTy = std::pair<SVal, SVal>;
  656   virtual SVal getCXXThisVal() const;
  800   SVal getCXXThisVal() const override;
  857   SVal getCXXThisVal() const;
  993   SVal getReceiverSVal() const;
  996   SVal getSelfSVal() const;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
  144   SVal getSVal(const Stmt *S) const {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
  191   virtual bool canReasonAbout(SVal X) const = 0;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
   60   using BindingsTy = llvm::ImmutableMap<EnvironmentEntry, SVal>;
   66   SVal lookupExpr(const EnvironmentEntry &E) const;
   76   SVal getSVal(const EnvironmentEntry &E, SValBuilder &svalBuilder) const;
  113   Environment bindExpr(Environment Env, const EnvironmentEntry &E, SVal V,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
  177   SVal getSVal(const Stmt *S) const {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
  366   ProgramStateRef processAssume(ProgramStateRef state, SVal cond,
  559   SVal evalMinus(SVal X) {
  559   SVal evalMinus(SVal X) {
  563   SVal evalComplement(SVal X) {
  563   SVal evalComplement(SVal X) {
  584   SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  589   SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  590                  NonLoc L, SVal R, QualType T) {
  595   SVal evalBinOp(ProgramStateRef ST, BinaryOperator::Opcode Op,
  596                  SVal LHS, SVal RHS, QualType T) {
  596                  SVal LHS, SVal RHS, QualType T) {
  603   static Optional<SVal>
  612                 SVal location, SVal Val, bool atDeclInit = false,
  612                 SVal location, SVal Val, bool atDeclInit = false,
  617                                               SVal Loc,
  618                                               SVal Val,
  632   ProgramStateRef escapeValue(ProgramStateRef State, SVal V,
  647                 SVal location,
  654                  ExplodedNode *Pred, ProgramStateRef St, SVal TargetLV, SVal Val,
  654                  ExplodedNode *Pred, ProgramStateRef St, SVal TargetLV, SVal Val,
  690                       SVal location,
  699                     SVal location,
  787   static SVal makeZeroElementRegion(ProgramStateRef State, SVal LValue,
  787   static SVal makeZeroElementRegion(ProgramStateRef State, SVal LValue,
  803   std::pair<ProgramStateRef, SVal> prepareForObjectConstruction(
  817                              const LocationContext *LC, SVal V);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
 1100                             SVal Idx, const MemRegion* superRegion);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
  219   ConditionTruthVal isNonNull(SVal V) const;
  223   ConditionTruthVal isNull(SVal V) const;
  226   ConditionTruthVal areEqual(SVal Lhs, SVal Rhs) const;
  226   ConditionTruthVal areEqual(SVal Lhs, SVal Rhs) const;
  238                                           const LocationContext *LCtx, SVal V,
  241   LLVM_NODISCARD ProgramStateRef bindLoc(Loc location, SVal V,
  245   LLVM_NODISCARD ProgramStateRef bindLoc(SVal location, SVal V,
  245   LLVM_NODISCARD ProgramStateRef bindLoc(SVal location, SVal V,
  255   bindDefaultInitial(SVal loc, SVal V, const LocationContext *LCtx) const;
  255   bindDefaultInitial(SVal loc, SVal V, const LocationContext *LCtx) const;
  260   bindDefaultZero(SVal loc, const LocationContext *LCtx) const;
  290   invalidateRegions(ArrayRef<SVal> Regions, const Expr *E,
  315   SVal getLValue(const ObjCIvarDecl *decl, SVal base) const;
  315   SVal getLValue(const ObjCIvarDecl *decl, SVal base) const;
  318   SVal getLValue(const FieldDecl *decl, SVal Base) const;
  318   SVal getLValue(const FieldDecl *decl, SVal Base) const;
  321   SVal getLValue(const IndirectFieldDecl *decl, SVal Base) const;
  321   SVal getLValue(const IndirectFieldDecl *decl, SVal Base) const;
  324   SVal getLValue(QualType ElementType, SVal Idx, SVal Base) const;
  324   SVal getLValue(QualType ElementType, SVal Idx, SVal Base) const;
  324   SVal getLValue(QualType ElementType, SVal Idx, SVal Base) const;
  327   SVal getSVal(const Stmt *S, const LocationContext *LCtx) const;
  329   SVal getSValAsScalarOrLoc(const Stmt *Ex, const LocationContext *LCtx) const;
  333   SVal getSVal(Loc LV, QualType T = QualType()) const;
  336   SVal getRawSVal(Loc LV, QualType T= QualType()) const;
  340   SVal getSVal(const MemRegion* R, QualType T = QualType()) const;
  346   SVal getSValAsScalarOrLoc(const MemRegion *R) const;
  357   bool scanReachableSymbols(SVal val, SymbolVisitor& visitor) const;
  364   template <typename CB> CB scanReachableSymbols(SVal val) const;
  443   invalidateRegionsImpl(ArrayRef<SVal> Values,
  542   SVal ArrayToPointer(Loc Array, QualType ElementTy) {
  701 inline ProgramStateRef ProgramState::bindLoc(SVal LV, SVal V, const LocationContext *LCtx) const {
  701 inline ProgramStateRef ProgramState::bindLoc(SVal LV, SVal V, const LocationContext *LCtx) const {
  733 inline SVal ProgramState::getLValue(const ObjCIvarDecl *D, SVal Base) const {
  733 inline SVal ProgramState::getLValue(const ObjCIvarDecl *D, SVal Base) const {
  737 inline SVal ProgramState::getLValue(const FieldDecl *D, SVal Base) const {
  737 inline SVal ProgramState::getLValue(const FieldDecl *D, SVal Base) const {
  741 inline SVal ProgramState::getLValue(const IndirectFieldDecl *D,
  742                                     SVal Base) const {
  751 inline SVal ProgramState::getLValue(QualType ElementType, SVal Idx, SVal Base) const{
  751 inline SVal ProgramState::getLValue(QualType ElementType, SVal Idx, SVal Base) const{
  751 inline SVal ProgramState::getLValue(QualType ElementType, SVal Idx, SVal Base) const{
  757 inline SVal ProgramState::getSVal(const Stmt *Ex,
  763 inline SVal
  776 inline SVal ProgramState::getRawSVal(Loc LV, QualType T) const {
  780 inline SVal ProgramState::getSVal(const MemRegion* R, QualType T) const {
  839 CB ProgramState::scanReachableSymbols(SVal val) const {
  869   bool scan(SVal val);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
  147     using data_type = llvm::ImmutableMap<Key, Data, Info>;
  150     using value_type = Data;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
  245   bool canReasonAbout(SVal X) const override {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
   75   virtual SVal evalCastFromNonLoc(NonLoc val, QualType castTy) = 0;
   76   virtual SVal evalCastFromLoc(Loc val, QualType castTy) = 0;
   81   virtual SVal dispatchCast(SVal val, QualType castTy) = 0;
   81   virtual SVal dispatchCast(SVal val, QualType castTy) = 0;
  105   SVal evalCast(SVal val, QualType castTy, QualType originalType);
  105   SVal evalCast(SVal val, QualType castTy, QualType originalType);
  108   SVal evalIntegralCast(ProgramStateRef state, SVal val, QualType castTy,
  108   SVal evalIntegralCast(ProgramStateRef state, SVal val, QualType castTy,
  111   virtual SVal evalMinus(NonLoc val) = 0;
  113   virtual SVal evalComplement(NonLoc val) = 0;
  117   virtual SVal evalBinOpNN(ProgramStateRef state, BinaryOperator::Opcode op,
  122   virtual SVal evalBinOpLL(ProgramStateRef state, BinaryOperator::Opcode op,
  128   virtual SVal evalBinOpLN(ProgramStateRef state, BinaryOperator::Opcode op,
  133   virtual const llvm::APSInt *getKnownValue(ProgramStateRef state, SVal val) = 0;
  138   virtual SVal simplifySVal(ProgramStateRef State, SVal Val) = 0;
  138   virtual SVal simplifySVal(ProgramStateRef State, SVal Val) = 0;
  141   SVal makeSymExprValNN(BinaryOperator::Opcode op,
  144   SVal evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  145                  SVal lhs, SVal rhs, QualType type);
  145                  SVal lhs, SVal rhs, QualType type);
  148   ConditionTruthVal areEqual(ProgramStateRef state, SVal lhs, SVal rhs);
  148   ConditionTruthVal areEqual(ProgramStateRef state, SVal lhs, SVal rhs);
  150   SVal evalEQ(ProgramStateRef state, SVal lhs, SVal rhs);
  150   SVal evalEQ(ProgramStateRef state, SVal lhs, SVal rhs);
  150   SVal evalEQ(ProgramStateRef state, SVal lhs, SVal rhs);
  248   Optional<SVal> getConstantVal(const Expr *E);
  250   NonLoc makeCompoundVal(QualType type, llvm::ImmutableList<SVal> vals) {
  276   SVal convertToArrayIndex(SVal val);
  276   SVal convertToArrayIndex(SVal val);
  372   SVal makeSymbolVal(SymbolRef Sym) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h
   33   RetTy Visit(SVal V) {
   33   RetTy Visit(SVal V) {
   39     case SVal::LocKind:
   46     case SVal::NonLocKind:
   68   RetTy VisitSVal(SVal V) { return RetTy(); }
   68   RetTy VisitSVal(SVal V) { return RetTy(); }
   81   RetTy Visit(SymbolRef S) {
   98   RetTy VisitSymExpr(SymbolRef S) { return RetTy(); }
  111   RetTy Visit(const MemRegion *R) {
  129   RetTy VisitMemRegion(const MemRegion *R) { return RetTy(); }
  137 class FullSValVisitor : public SValVisitor<ImplClass, RetTy>,
  138                         public SymExprVisitor<ImplClass, RetTy>,
  139                         public MemRegionVisitor<ImplClass, RetTy> {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  128   bool operator==(const SVal &R) const {
  132   bool operator!=(const SVal &R) const {
  212 inline raw_ostream &operator<<(raw_ostream &os, clang::ento::SVal V) {
  217 class UndefinedVal : public SVal {
  224   static bool isKind(const SVal& V) {
  229 class DefinedOrUnknownSVal : public SVal {
  245   static bool isKind(const SVal& V) {
  257   static bool isKind(const SVal &V) {
  278   static bool isKind(const SVal& V) {
  284 class KnownSVal : public SVal {
  289   static bool isKind(const SVal &V) {
  315   static bool isKind(const SVal& V) {
  337   static bool isKind(const SVal& V) {
  368   static bool isKind(const SVal& V) {
  388   SVal evalBinOp(SValBuilder &svalBuilder, BinaryOperator::Opcode Op,
  400   static bool isKind(const SVal& V) {
  413   explicit LocAsInteger(const std::pair<SVal, uintptr_t> &data)
  424     const std::pair<SVal, uintptr_t> *D =
  430     const std::pair<SVal, uintptr_t> *D =
  432     const SVal& V = D->first;
  437     const std::pair<SVal, uintptr_t> *D =
  447   static bool isKind(const SVal& V) {
  467   using iterator = llvm::ImmutableList<SVal>::iterator;
  477   static bool isKind(const SVal& V) {
  505   static bool isKind(const SVal& V) {
  556   static bool isKind(const SVal& V) {
  589   static bool isKind(const SVal& V) {
  630   static bool isKind(const SVal& V) {
  649   SVal evalBinOp(BasicValueFactory& BasicVals, BinaryOperator::Opcode Op,
  657   static bool isKind(const SVal& V) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
   74   virtual SVal getBinding(Store store, Loc loc, QualType T = QualType()) = 0;
   86   virtual Optional<SVal> getDefaultBinding(Store store, const MemRegion *R) = 0;
   96   Optional<SVal> getDefaultBinding(nonloc::LazyCompoundVal lcv) {
  107   virtual StoreRef Bind(Store store, Loc loc, SVal val) = 0;
  113                                       SVal V) = 0;
  143   virtual SVal getLValueIvar(const ObjCIvarDecl *decl, SVal base);
  143   virtual SVal getLValueIvar(const ObjCIvarDecl *decl, SVal base);
  145   virtual SVal getLValueField(const FieldDecl *D, SVal Base) {
  145   virtual SVal getLValueField(const FieldDecl *D, SVal Base) {
  149   virtual SVal getLValueElement(QualType elementType, NonLoc offset, SVal Base);
  149   virtual SVal getLValueElement(QualType elementType, NonLoc offset, SVal Base);
  161   virtual SVal ArrayToPointer(Loc Array, QualType ElementTy) = 0;
  165   SVal evalDerivedToBase(SVal Derived, const CastExpr *Cast);
  165   SVal evalDerivedToBase(SVal Derived, const CastExpr *Cast);
  168   SVal evalDerivedToBase(SVal Derived, const CXXBasePath &CastPath);
  168   SVal evalDerivedToBase(SVal Derived, const CXXBasePath &CastPath);
  171   SVal evalDerivedToBase(SVal Derived, QualType DerivedPtrType,
  171   SVal evalDerivedToBase(SVal Derived, QualType DerivedPtrType,
  185   SVal attemptDownCast(SVal Base, QualType DerivedPtrType, bool &Failed);
  185   SVal attemptDownCast(SVal Base, QualType DerivedPtrType, bool &Failed);
  235                                   ArrayRef<SVal> Values,
  265                                const MemRegion *region, SVal val) = 0;
  279                        SVal val) override;
  294   SVal CastRetrievedVal(SVal val, const TypedValueRegion *region,
  294   SVal CastRetrievedVal(SVal val, const TypedValueRegion *region,
  298   SVal getLValueFieldOrIvar(const Decl *decl, SVal base);
  298   SVal getLValueFieldOrIvar(const Decl *decl, SVal base);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
  131                                        SVal cond, bool assumption) = 0;
  152   processPointerEscapedOnBind(ProgramStateRef State, SVal Loc, SVal Val, const LocationContext *LCtx) = 0;
  152   processPointerEscapedOnBind(ProgramStateRef State, SVal Loc, SVal Val, const LocationContext *LCtx) = 0;
tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp
  142   void checkNewAllocator(const CXXNewExpr *CNE, SVal Target,
  148   void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &C) const {
  148   void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &C) const {
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
   30   void checkLocation(SVal l, bool isLoad, const Stmt* S,
   35 void ArrayBoundChecker::checkLocation(SVal l, bool isLoad, const Stmt* LoadS,
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
   41   void checkLocation(SVal l, bool isLoad, const Stmt*S,
   49   SVal byteOffset;
   55   RegionRawOffsetV2(const SubRegion* base, SVal offset)
   63                                          SVal location);
   70 static SVal computeExtentBegin(SValBuilder &svalBuilder,
  115 void ArrayBoundCheckerV2::checkLocation(SVal location, bool isLoad,
  143   SVal extentBegin = computeExtentBegin(svalBuilder, rawOffset.getRegion());
  155     SVal lowerBound = svalBuilder.evalBinOpNN(state, BO_LT, rawOffsetVal, *NV,
  194     SVal upperbound = svalBuilder.evalBinOpNN(state, BO_GE, rawOffsetVal,
  208       SVal ByteOffset = rawOffset.getByteOffset();
  277 static inline SVal getValue(SVal val, SValBuilder &svalBuilder) {
  277 static inline SVal getValue(SVal val, SValBuilder &svalBuilder) {
  283 static inline SVal scaleValue(ProgramStateRef state,
  293 static SVal addValue(ProgramStateRef state, SVal x, SVal y,
  293 static SVal addValue(ProgramStateRef state, SVal x, SVal y,
  293 static SVal addValue(ProgramStateRef state, SVal x, SVal y,
  309                                                    SVal location)
  312   SVal offset = UndefinedVal();
  326         SVal index = elemReg->getIndex();
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
  444   SVal TheTypeVal = C.getSVal(CE->getArg(1));
  464   SVal TheValueExpr = C.getSVal(CE->getArg(2));
  558   SVal ArgVal = Call.getArgSVal(0);
  861   SVal CollectionVal = C.getSVal(FCS->getCollection());
  907   SVal Val = State->getSVal(*ElementLoc);
  928   SVal CountGreaterThanZeroVal =
  981   SVal CollectionSentinel = C.getSVal(FCS);
 1179   SVal Val = C.getSVal(NonNullExpr);
tools/clang/lib/StaticAnalyzer/Checkers/BoolAssignmentChecker.cpp
   28     void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
   28     void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
   55 void BoolAssignmentChecker::checkBind(SVal loc, SVal val, const Stmt *S,
   55 void BoolAssignmentChecker::checkBind(SVal loc, SVal val, const Stmt *S,
   86   SVal greaterThanOrEqualToZeroVal =
  122   SVal lessThanEqToOneVal =
tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
   48     SVal Arg = Call.getArgSVal(0);
   73     SVal Arg = Call.getArgSVal(0);
   88     auto Size = Call.getArgSVal(0);
  109     SVal V = UnknownVal();
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
  163                     ProgramStateRef state, SVal V, QualType Ty);
  167                                               SVal strLength);
  168   static SVal getCStringLengthForRegion(CheckerContext &C,
  173   SVal getCStringLength(CheckerContext &C,
  176                         SVal Buf,
  182                                          SVal val) const;
  186                                           const Expr *Ex, SVal V,
  193   static bool memsetAux(const Expr *DstBuffer, SVal CharE,
  201                                    SVal l,
  206                                     SVal l,
  268 CStringChecker::assumeZero(CheckerContext &C, ProgramStateRef state, SVal V,
  281                                             const Expr *S, SVal l,
  312                                              const Expr *S, SVal l,
  333   SVal Extent =
  390   SVal BufVal = C.getSVal(FirstBuf);
  402   SVal LengthVal = C.getSVal(Size);
  409   SVal Offset = svalBuilder.evalBinOpNN(state, BO_Sub, *Length, One, sizeTy);
  415   SVal BufStart = svalBuilder.evalCast(BufVal, PtrTy, FirstBuf->getType());
  419     SVal BufEnd = svalBuilder.evalBinOpLN(state, BO_Add, *BufLoc,
  439       SVal BufEnd = svalBuilder.evalBinOpLN(state, BO_Add, *BufLoc,
  469   SVal firstVal = state->getSVal(First, LCtx);
  470   SVal secondVal = state->getSVal(Second, LCtx);
  497   SVal reverse = svalBuilder.evalBinOpLL(state, BO_GT,
  519   SVal LengthVal = state->getSVal(Size, LCtx);
  528   SVal FirstStart = svalBuilder.evalCast(*firstLoc, CharPtrTy,
  535   SVal FirstEnd = svalBuilder.evalBinOpLN(state, BO_Add,
  542   SVal Overlap = svalBuilder.evalBinOpLL(state, BO_GT,
  677   SVal maxMinusRight;
  692     SVal willOverflow = svalBuilder.evalBinOpNN(state, BO_GT, left,
  715                                                 SVal strLength) {
  753 SVal CStringChecker::getCStringLengthForRegion(CheckerContext &C,
  760     const SVal *Recorded = state->get<CStringLength>(MR);
  768   SVal strLength = svalBuilder.getMetadataSymbolVal(CStringChecker::getTag(),
  782       SVal evalLength = svalBuilder.evalBinOpNN(state, BO_LE, *strLn,
  792 SVal CStringChecker::getCStringLength(CheckerContext &C, ProgramStateRef &state,
  793                                       const Expr *Ex, SVal Buf,
  867   ProgramStateRef &state, const Expr *expr, SVal val) const {
  901   SVal BufVal = state->getSVal(FirstBuf, LCtx);
  903   SVal LengthVal = state->getSVal(Size, LCtx);
  910   SVal Offset = svalBuilder.evalBinOpNN(state, BO_Sub, *Length, One, sizeTy);
  916   SVal BufStart = svalBuilder.evalCast(BufVal, PtrTy, FirstBuf->getType());
  921   SVal BufEnd =
  940   SVal Extent =
  954                                                  const Expr *E, SVal V,
 1046 bool CStringChecker::memsetAux(const Expr *DstBuffer, SVal CharVal,
 1049   SVal MemVal = C.getSVal(DstBuffer);
 1050   SVal SizeVal = C.getSVal(Size);
 1112       SVal NewStrLen = svalBuilder.getMetadataSymbolVal(
 1118       SVal NewStrLenGESize = svalBuilder.evalBinOp(
 1148   SVal sizeVal = state->getSVal(Size, LCtx);
 1156   SVal destVal = state->getSVal(Dest, LCtx);
 1177     SVal srcVal = state->getSVal(Source, LCtx);
 1203       SVal DestRegCharVal =
 1205       SVal lastElement = C.getSValBuilder().evalBinOp(
 1286   SVal sizeVal = state->getSVal(Size, LCtx);
 1337         SVal CmpV = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx,
 1366     SVal maxlenVal = state->getSVal(maxlenExpr, LCtx);
 1375       SVal zero = C.getSValBuilder().makeZeroVal(CE->getType());
 1390   SVal ArgVal = state->getSVal(Arg, LCtx);
 1397   SVal strLength = getCStringLength(C, state, Arg, ArgVal);
 1414     SVal maxlenVal = state->getSVal(maxlenExpr, LCtx);
 1548   SVal DstVal = state->getSVal(Dst, LCtx);
 1556   SVal srcVal = state->getSVal(srcExpr, LCtx);
 1562   SVal strLength = getCStringLength(C, state, srcExpr, srcVal);
 1575   SVal amountCopied = UnknownVal();
 1576   SVal maxLastElementIndex = UnknownVal();
 1588     SVal lenVal = state->getSVal(lenExpr, LCtx);
 1629         SVal dstStrLength = getCStringLength(C, state, Dst, DstVal);
 1689           SVal copiedLessThanBound = svalBuilder.evalBinOpNN(state, BO_LE,
 1701           SVal copiedLessThanSrc = svalBuilder.evalBinOpNN(state, BO_LE,
 1724   SVal finalStrLength = UnknownVal();
 1732     SVal dstStrLength = getCStringLength(C, state, Dst, DstVal);
 1761           SVal sourceInResult = svalBuilder.evalBinOpNN(state, BO_GE,
 1773           SVal destInResult = svalBuilder.evalBinOpNN(state, BO_GE,
 1791   SVal Result;
 1813         SVal maxLastElement = svalBuilder.evalBinOpLN(state, BO_Add, *dstRegVal,
 1824       SVal lastElement = svalBuilder.evalBinOpLN(state, BO_Add, *dstRegVal,
 1912   SVal s1Val = state->getSVal(s1, LCtx);
 1919   SVal s2Val = state->getSVal(s2, LCtx);
 1925   SVal s1Length = getCStringLength(C, state, s1, s1Val);
 1930   SVal s2Length = getCStringLength(C, state, s2, s2Val);
 1968   SVal resultVal = svalBuilder.conjureSymbolVal(nullptr, CE, LCtx,
 1978       SVal lenVal = state->getSVal(lenExpr, LCtx);
 2016         SVal compareWithZero =
 2046   SVal SearchStrVal = State->getSVal(SearchStrPtr, LCtx);
 2053   SVal DelimStrVal = State->getSVal(DelimStr, LCtx);
 2059   SVal Result;
 2115   SVal DstVal = State->getSVal(Dst, LCtx);
 2121   SVal ResultVal = SVB.conjureSymbolVal(nullptr, CE, LCtx, C.blockCount());
 2137   SVal SizeVal = State->getSVal(Size, LCtx);
 2145   SVal MemVal = State->getSVal(Mem, LCtx);
 2180   SVal Zero = C.getSValBuilder().makeZeroVal(C.getASTContext().IntTy);
 2185   SVal SizeVal = C.getSVal(Size);
 2200   SVal MemVal = C.getSVal(Mem);
 2299     SVal StrVal = C.getSVal(Init);
 2371     SVal Len = I.getData();
 2389     SVal Len = I.getData();
tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp
   49   auto ThisVal =
   52   auto ParamVal = State->getSVal(Param);
tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
   66   bool PreVisitProcessArg(CheckerContext &C, SVal V, SourceRange ArgRange,
   84   bool uninitRefOrPointer(CheckerContext &C, const SVal &V,
  144     CheckerContext &C, const SVal &V, SourceRange ArgRange, const Expr *ArgEx,
  174     const SVal PSV = State->getSVal(SValMemRegion, C.getASTContext().CharTy);
  219           const SVal &V = StoreMgr.getBinding(store, loc::MemRegionVal(FR));
  233                                                SVal V,
  320   SVal L = State->getSVal(Callee, LCtx);
  347   SVal Arg = C.getSVal(DE->getArgument());
  375     SVal V = CC->getCXXThisVal();
  458   SVal recVal = msg.getReceiverSVal();
  558     SVal V = C.getSValBuilder().makeZeroVal(RetTy);
  596     SVal V = C.getSValBuilder().makeZeroVal(RetTy);
tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp
  112   SVal extent = SR->getExtent(svalBuilder);
tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
  209   SVal V = CastSucceeds ? C.getSValBuilder().evalCast(DV, CastToTy, CastFromTy)
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
  120   ProgramStateRef evalAssume(ProgramStateRef State, SVal Cond,
  153   bool isInInstanceDealloc(const CheckerContext &C, SVal &SelfValOut) const;
  155                            SVal &SelfValOut) const;
  157                                 SVal &InstanceValOut) const;
  258   SVal SelfVal;
  284     SVal LVal = State->getLValue(PropImpl->getPropertyIvarDecl(), SelfVal);
  289     SVal InitialVal = State->getSVal(LValLoc.getValue());
  331   SVal DeallocedInstance;
  404 ProgramStateRef ObjCDeallocChecker::evalAssume(ProgramStateRef State, SVal Cond,
  490   SVal SelfVal;
  608   SVal DeallocedInstance;
  927   SVal ReceiverVal = M.getReceiverSVal();
  938   SVal Arg = M.getArgSVal(0);
  955   SVal LVal = State->getLValue(PropIvarDecl, ReceiverVal);
  960   SVal CurrentValInIvar = State->getSVal(LValLoc.getValue());
  968                                              SVal &SelfValOut) const {
  977                                              SVal &SelfValOut) const {
  994                                                   SVal &InstanceValOut) const {
tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
  142   void checkNewAllocator(const CXXNewExpr *NE, SVal Target,
  154   void checkLocation(SVal Loc, bool IsLoad, const Stmt *S,
  164   void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const {}
  164   void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &) const {}
  240                                  SVal Cond,
tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp
   99   SVal ArgVal = C.getSVal(ArgExpr);
tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
   39   void checkLocation(SVal location, bool isLoad, const Stmt* S,
   41   void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
   41   void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
  194 void DereferenceChecker::checkLocation(SVal l, bool isLoad, const Stmt* S,
  246 void DereferenceChecker::checkBind(SVal L, SVal V, const Stmt *S,
  246 void DereferenceChecker::checkBind(SVal L, SVal V, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp
   69   SVal Denom = C.getSVal(B->getRHS());
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
  785     SVal ArgSVal = M.getArgSVal(i);
tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
  113   SVal AssertionVal = State->getSVal(Assertion, LC);
  203   SVal V = C.getSVal(CE->getArg(0));
  215   SVal V = C.getSVal(CE->getArg(0));
  251   SVal Val = C.getSVal(CE->getArg(0));
tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp
   46   SVal RV = C.getSVal(B->getRHS());
tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp
  111   SVal
  113                                       SVal Instance,
  116   static ProgramStateRef assumeValuesEqual(SVal Val1, SVal Val2,
  116   static ProgramStateRef assumeValuesEqual(SVal Val1, SVal Val2,
  135   SVal BooleanArgVal = Call->getArgSVal(0);
  143   SVal ThisVal = Call->getCXXThisVal();
  145   SVal ThisSuccess = getAssertionResultSuccessFieldValue(
  165   SVal OtherVal = Call->getArgSVal(0);
  166   SVal ThisVal = Call->getCXXThisVal();
  171   SVal ThisSuccess = getAssertionResultSuccessFieldValue(AssertResultClassDecl,
  173   SVal OtherSuccess = getAssertionResultSuccessFieldValue(AssertResultClassDecl,
  249 SVal GTestChecker::getAssertionResultSuccessFieldValue(
  250     const CXXRecordDecl *AssertionResultDecl, SVal Instance,
  270 ProgramStateRef GTestChecker::assumeValuesEqual(SVal Val1, SVal Val2,
  270 ProgramStateRef GTestChecker::assumeValuesEqual(SVal Val1, SVal Val2,
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
  115   static Optional<SVal> getPointedToSVal(CheckerContext &C, const Expr *Arg);
  219       Optional<SVal> V = getPointedToSVal(C, E);
  517     Optional<SVal> V = getPointedToSVal(C, Arg);
  558 Optional<SVal> GenericTaintChecker::getPointedToSVal(CheckerContext &C,
  561   SVal AddrVal = C.getSVal(Arg->IgnoreParens());
  664   SVal Val = C.getSVal(E);
  727   Optional<SVal> PointedToSVal = getPointedToSVal(C, E);
  728   SVal TaintedSVal;
tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
  169       SVal Arg = FC->getArgSVal(ArgI);
  206       SVal RawPtr = Call.getReturnValue();
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
  182   void handleComparison(CheckerContext &C, const Expr *CE, const SVal &RetVal,
  183                         const SVal &LVal, const SVal &RVal,
  183                         const SVal &LVal, const SVal &RVal,
  186                          SymbolRef Sym1, SymbolRef Sym2, const SVal &RetVal,
  188   void verifyAccess(CheckerContext &C, const SVal &Val) const;
  189   void verifyDereference(CheckerContext &C, const SVal &Val) const;
  190   void handleIncrement(CheckerContext &C, const SVal &RetVal, const SVal &Iter,
  190   void handleIncrement(CheckerContext &C, const SVal &RetVal, const SVal &Iter,
  192   void handleDecrement(CheckerContext &C, const SVal &RetVal, const SVal &Iter,
  192   void handleDecrement(CheckerContext &C, const SVal &RetVal, const SVal &Iter,
  195                               const SVal &RetVal, const SVal &LHS,
  195                               const SVal &RetVal, const SVal &LHS,
  196                               const SVal &RHS) const;
  197   void handleBegin(CheckerContext &C, const Expr *CE, const SVal &RetVal,
  198                    const SVal &Cont) const;
  199   void handleEnd(CheckerContext &C, const Expr *CE, const SVal &RetVal,
  200                  const SVal &Cont) const;
  201   void assignToContainer(CheckerContext &C, const Expr *CE, const SVal &RetVal,
  203   void handleAssign(CheckerContext &C, const SVal &Cont,
  205                     const SVal &OldCont = UndefinedVal()) const;
  206   void handleClear(CheckerContext &C, const SVal &Cont) const;
  207   void handlePushBack(CheckerContext &C, const SVal &Cont) const;
  208   void handlePopBack(CheckerContext &C, const SVal &Cont) const;
  209   void handlePushFront(CheckerContext &C, const SVal &Cont) const;
  210   void handlePopFront(CheckerContext &C, const SVal &Cont) const;
  211   void handleInsert(CheckerContext &C, const SVal &Iter) const;
  212   void handleErase(CheckerContext &C, const SVal &Iter) const;
  213   void handleErase(CheckerContext &C, const SVal &Iter1,
  214                    const SVal &Iter2) const;
  215   void handleEraseAfter(CheckerContext &C, const SVal &Iter) const;
  216   void handleEraseAfter(CheckerContext &C, const SVal &Iter1,
  217                         const SVal &Iter2) const;
  218   void verifyIncrement(CheckerContext &C, const SVal &Iter) const;
  219   void verifyDecrement(CheckerContext &C, const SVal &Iter) const;
  221                               const SVal &LHS, const SVal &RHS) const;
  221                               const SVal &LHS, const SVal &RHS) const;
  222   void verifyMatch(CheckerContext &C, const SVal &Iter,
  224   void verifyMatch(CheckerContext &C, const SVal &Iter1,
  225                    const SVal &Iter2) const;
  228                                    const SVal &Distance) const;
  229   void reportOutOfRangeBug(const StringRef &Message, const SVal &Val,
  231   void reportMismatchedBug(const StringRef &Message, const SVal &Val1,
  232                            const SVal &Val2, CheckerContext &C,
  234   void reportMismatchedBug(const StringRef &Message, const SVal &Val,
  237   void reportInvalidatedBug(const StringRef &Message, const SVal &Val,
  255   void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &C) const;
  255   void checkBind(SVal Loc, SVal Val, const Stmt *S, CheckerContext &C) const;
  311                                             const SVal &Val);
  312 ProgramStateRef setIteratorPosition(ProgramStateRef State, const SVal &Val,
  314 ProgramStateRef removeIteratorPosition(ProgramStateRef State, const SVal &Val);
  536       SVal LHS = UndefinedVal();
  749 void IteratorChecker::checkBind(SVal Loc, SVal Val, const Stmt *S,
  749 void IteratorChecker::checkBind(SVal Loc, SVal Val, const Stmt *S,
  852                                        const SVal &RetVal, const SVal &LVal,
  852                                        const SVal &RetVal, const SVal &LVal,
  853                                        const SVal &RVal,
  896                                         SymbolRef Sym2, const SVal &RetVal,
  925                                         const SVal &Val) const {
  937 void IteratorChecker::verifyAccess(CheckerContext &C, const SVal &Val) const {
  949 void IteratorChecker::handleIncrement(CheckerContext &C, const SVal &RetVal,
  950                                       const SVal &Iter, bool Postfix) const {
  967 void IteratorChecker::handleDecrement(CheckerContext &C, const SVal &RetVal,
  968                                       const SVal &Iter, bool Postfix) const {
  987                                              const SVal &RetVal,
  988                                              const SVal &LHS,
  989                                              const SVal &RHS) const {
  997   const auto *value = &RHS;
  999     const auto val = State->getRawSVal(*loc);
 1010                                       const SVal &Iter) const {
 1017                                       const SVal &Iter) const {
 1025                                              const SVal &LHS,
 1026                                              const SVal &RHS) const {
 1034   auto Value = RHS;
 1064 void IteratorChecker::verifyMatch(CheckerContext &C, const SVal &Iter,
 1100 void IteratorChecker::verifyMatch(CheckerContext &C, const SVal &Iter1,
 1101                                   const SVal &Iter2) const {
 1139                                   const SVal &RetVal, const SVal &Cont) const {
 1139                                   const SVal &RetVal, const SVal &Cont) const {
 1161                                 const SVal &RetVal, const SVal &Cont) const {
 1161                                 const SVal &RetVal, const SVal &Cont) const {
 1183                                         const SVal &RetVal,
 1197 void IteratorChecker::handleAssign(CheckerContext &C, const SVal &Cont,
 1198                                    const Expr *CE, const SVal &OldCont) const {
 1273 void IteratorChecker::handleClear(CheckerContext &C, const SVal &Cont) const {
 1300                                      const SVal &Cont) const {
 1337 void IteratorChecker::handlePopBack(CheckerContext &C, const SVal &Cont) const {
 1375                                       const SVal &Cont) const {
 1408                                      const SVal &Cont) const {
 1441 void IteratorChecker::handleInsert(CheckerContext &C, const SVal &Iter) const {
 1466 void IteratorChecker::handleErase(CheckerContext &C, const SVal &Iter) const {
 1494 void IteratorChecker::handleErase(CheckerContext &C, const SVal &Iter1,
 1495                                   const SVal &Iter2) const {
 1527                                        const SVal &Iter) const {
 1547 void IteratorChecker::handleEraseAfter(CheckerContext &C, const SVal &Iter1,
 1548                                        const SVal &Iter2) const {
 1564                                                   const SVal &Distance) const {
 1591                                           const SVal &Val, CheckerContext &C,
 1600                                           const SVal &Val1, const SVal &Val2,
 1600                                           const SVal &Val1, const SVal &Val2,
 1611                                           const SVal &Val, const MemRegion *Reg,
 1622                                            const SVal &Val, CheckerContext &C,
 1999                                             const SVal &Val) {
 2011 ProgramStateRef setIteratorPosition(ProgramStateRef State, const SVal &Val,
 2024 ProgramStateRef removeIteratorPosition(ProgramStateRef State, const SVal &Val) {
 2045   const auto comparison =
 2115   SVal IsCappedFromAbove =
 2125   SVal IsCappedFromBelow =
 2271   auto Diff = SVB.evalBinOpNN(State, BO_Sub, nonloc::SymbolVal(OrigExpr),
 2359   const auto comparison =
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
   76   bool hasNonLocalizedState(SVal S, CheckerContext &C) const;
   77   bool hasLocalizedState(SVal S, CheckerContext &C) const;
   78   void setNonLocalizedState(SVal S, CheckerContext &C) const;
   79   void setLocalizedState(SVal S, CheckerContext &C) const;
   83   void reportLocalizationError(SVal S, const CallEvent &M, CheckerContext &C,
  671 bool NonLocalizedStringChecker::hasLocalizedState(SVal S,
  684 bool NonLocalizedStringChecker::hasNonLocalizedState(SVal S,
  696 void NonLocalizedStringChecker::setLocalizedState(const SVal S,
  707 void NonLocalizedStringChecker::setNonLocalizedState(const SVal S,
  749     SVal S, const CallEvent &M, CheckerContext &C, int argumentNumber) const {
  823     SVal svTitle = msg.getReceiverSVal();
  863   SVal svTitle = msg.getArgSVal(argumentNumber);
  893       auto actual = Call.getArgSVal(i);
  936       SVal argValue = Call.getArgSVal(i);
  938         SVal sv = Call.getReturnValue();
  951   SVal sv = Call.getReturnValue();
  988     SVal sv = msg.getReturnValue();
  996   SVal sv = C.getSVal(SL);
 1015   SVal LiteralSVal = Succ->getSVal(LiteralExpr);
tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp
  117 static const ParmVarDecl *getOriginParam(SVal V, CheckerContext &C,
  207   SVal Arg = Call.getArgSVal(ArgIdx);
  225 static bool mayBeSuccess(SVal V, CheckerContext &C) {
  269   SVal V = C.getSVal(RS);
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
   66   ProgramStateRef evalAssume(ProgramStateRef state, SVal Cond,
  211   SVal ArgV = C.getSVal(Expr);
  307   SVal ArgSVal = C.getSVal(ArgExpr);
  506                                                     SVal Cond,
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
  211                                             Optional<SVal> RetVal = None);
  362   void checkNewAllocator(const CXXNewExpr *NE, SVal Target,
  370   ProgramStateRef evalAssume(ProgramStateRef state, SVal Cond,
  372   void checkLocation(SVal l, bool isLoad, const Stmt *S,
  404                             SVal Target) const;
  417                                                Optional<SVal> RetVal = None);
  450                                       const Expr *SizeEx, SVal Init,
  464                                       SVal Size, SVal Init,
  464                                       SVal Size, SVal Init,
  469                                        ProgramStateRef State, SVal Target);
  568   static SVal evalMulForBufferSize(CheckerContext &C, const Expr *Blocks,
  631   static bool SummarizeValue(raw_ostream &os, SVal V);
  634   void ReportBadFree(CheckerContext &C, SVal ArgVal, SourceRange Range,
  636   void ReportFreeAlloca(CheckerContext &C, SVal ArgVal,
  641   void ReportOffsetFree(CheckerContext &C, SVal ArgVal, SourceRange Range,
  654   void ReportFunctionPointerFree(CheckerContext &C, SVal ArgVal,
 1013   const SVal V = C.getSVal(FlagsEx);
 1024   SVal MaskedFlagsUC = C.getSValBuilder().evalBinOpNN(State, BO_And,
 1037     SVal ZeroVal = C.getSValBuilder().makeZeroVal(Ctx.CharTy);
 1044 SVal MallocChecker::evalMulForBufferSize(CheckerContext &C, const Expr *Blocks,
 1047   SVal BlocksVal = C.getSVal(Blocks);
 1048   SVal BlockBytesVal = C.getSVal(BlockBytes);
 1050   SVal TotalSize = SB.evalBinOp(State, BO_Mul, BlocksVal, BlockBytesVal,
 1174       SVal zeroVal = svalBuilder.makeZeroVal(svalBuilder.getContext().CharTy);
 1188       SVal Init = UndefinedVal();
 1194       SVal TotalSize = evalMulForBufferSize(C, CE->getArg(0), CE->getArg(1));
 1232     ProgramStateRef State, Optional<SVal> RetVal) {
 1335                                          SVal Target) const {
 1367 void MallocChecker::checkNewAllocator(const CXXNewExpr *NE, SVal Target,
 1379                                              SVal Target) {
 1383   SVal ElementCount;
 1407     SVal SizeInBytes = svalBuilder.evalBinOpNN(
 1501                                             const Expr *SizeEx, SVal Init,
 1512                                            SVal Size, SVal Init,
 1512                                            SVal Size, SVal Init,
 1557                                             Optional<SVal> RetVal) {
 1757   SVal ArgVal = C.getSVal(ArgExpr);
 1883     SVal RetVal = C.getSVal(ParentExpr);
 1958 bool MallocChecker::SummarizeValue(raw_ostream &os, SVal V) {
 2045 void MallocChecker::ReportBadFree(CheckerContext &C, SVal ArgVal,
 2092 void MallocChecker::ReportFreeAlloca(CheckerContext &C, SVal ArgVal,
 2174 void MallocChecker::ReportOffsetFree(CheckerContext &C, SVal ArgVal,
 2356 void MallocChecker::ReportFunctionPointerFree(CheckerContext &C, SVal ArgVal,
 2406   SVal Arg0Val = C.getSVal(arg0Expr);
 2420   SVal TotalSize = C.getSVal(Arg1);
 2454   SVal RetVal = C.getSVal(CE);
 2506   SVal zeroVal = svalBuilder.makeZeroVal(svalBuilder.getContext().CharTy);
 2507   SVal TotalSize = evalMulForBufferSize(C, CE->getArg(0), CE->getArg(1));
 2530           SVal Val = State->getSVal(MR);
 2711     SVal ArgSVal = Call.getArgSVal(I);
 2746   SVal RetVal = C.getSVal(E);
 2870 void MallocChecker::checkLocation(SVal l, bool isLoad, const Stmt *S,
 2882                                               SVal Cond,
tools/clang/lib/StaticAnalyzer/Checkers/MmapWriteExecChecker.cpp
   50     SVal ProtVal = Call.getArgSVal(2);
tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
  162   void checkLocation(SVal loc, bool isLoad, const Stmt *S,
  173 static bool hasFlag(SVal val, ProgramStateRef state) {
  181 static void setFlag(ProgramStateRef state, SVal val, CheckerContext &C) {
  187 static QualType parameterTypeFromSVal(SVal val, CheckerContext &C) {
  201 void NSOrCFErrorDerefChecker::checkLocation(SVal loc, bool isLoad,
  242   SVal loc = event.Location;
tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
   98     SVal V = Call.getArgSVal(idx);
tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp
   43   void checkLocation(SVal l, bool isLoad, const Stmt *S,
   49   bool isGlobalConstString(SVal V) const;
   67 void NonnullGlobalConstantsChecker::checkLocation(SVal location, bool isLoad,
   77     SVal V = State->getSVal(location.castAs<Loc>());
   91 bool NonnullGlobalConstantsChecker::isGlobalConstString(SVal V) const {
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
   96   void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
   96   void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
  184   const SymbolicRegion *getTrackRegion(SVal Val,
  273 NullabilityChecker::getTrackRegion(SVal Val, bool CheckSuperRegion) const {
  332                                                   SVal LV, QualType T) {
  364     SVal LV = State->getLValue(ParamDecl, LocCtxt);
  384   SVal SelfVal = State->getSVal(State->getRegion(SelfDecl, LocCtxt));
  396     SVal LV = State->getLValue(IvarDecl, SelfVal);
  792   SVal Receiver = M.getReceiverSVal();
 1053 void NullabilityChecker::checkBind(SVal L, SVal V, const Stmt *S,
 1053 void NullabilityChecker::checkBind(SVal L, SVal V, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp
   41   SVal V = C.getSVal(Ex);
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersChecker.cpp
   41     SVal ArrayRef = C.getSVal(E);
   71   SVal SizeV = C.getSVal(Size);
   77   SVal ArrayRef = C.getSVal(Array);
  133     SVal IdxVal = C.getSVal(IdxExpr);
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
   54 static bool isSelfVar(SVal location, CheckerContext &C);
   74   void checkLocation(SVal location, bool isLoad, const Stmt *S,
   76   void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
   76   void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
  106 static SelfFlagEnum getSelfFlags(SVal val, ProgramStateRef state) {
  113 static SelfFlagEnum getSelfFlags(SVal val, CheckerContext &C) {
  117 static void addSelfFlag(ProgramStateRef state, SVal val,
  126 static bool hasSelfFlag(SVal val, SelfFlagEnum flag, CheckerContext &C) {
  134   SVal exprVal = C.getSVal(E);
  185     SVal V = C.getSVal(Msg.getOriginExpr());
  252     SVal argV = CE.getArgSVal(i);
  280     SVal argV = CE.getArgSVal(i);
  300 void ObjCSelfInitChecker::checkLocation(SVal location, bool isLoad,
  316 void ObjCSelfInitChecker::checkBind(SVal loc, SVal val, const Stmt *S,
  316 void ObjCSelfInitChecker::checkBind(SVal loc, SVal val, const Stmt *S,
  410 static bool isSelfVar(SVal location, CheckerContext &C) {
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp
   46   void checkLocation(SVal l, bool isLoad, const Stmt *S,
  129 void ObjCSuperDeallocChecker::checkLocation(SVal L, bool IsLoad, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp
  109   SVal S = State->getSVal(Region);
  228   SVal SV = C.getSVal(CE);
  249   SVal AllocedVal = C.getSVal(NE);
  264   SVal CastedVal = C.getSVal(CastedExpr);
  282   SVal CastedVal = C.getSVal(CastedExpr);
  305   SVal Idx = C.getSVal(SubsExpr->getIdx());
  328     SVal RHSVal = C.getSVal(Rhs);
  335     SVal LHSVal = C.getSVal(Lhs);
tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp
   41   SVal LV = C.getSVal(B->getLHS());
   42   SVal RV = C.getSVal(B->getRHS());
tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
   86   void AcquireLock(CheckerContext &C, const CallExpr *CE, SVal lock,
   89   void ReleaseLock(CheckerContext &C, const CallExpr *CE, SVal lock) const;
   90   void DestroyLock(CheckerContext &C, const CallExpr *CE, SVal Lock,
   92   void InitLock(CheckerContext &C, const CallExpr *CE, SVal Lock) const;
  217                                      SVal lock, bool isTryLock,
  229   SVal X = C.getSVal(CE);
  289                                      SVal lock) const {
  347                                      SVal Lock,
  409                                   SVal Lock) const {
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
  234     SVal V = pred->getSVal(Child);
  371       SVal ReceiverV = MC->getReceiverSVal();
  455     SVal V = CallOrMsg.getArgSVal(idx);
  524   SVal L = CE.getReturnValue();
  552     SVal ArgVal = CE.getArgSVal(idx);
  560     SVal PointeeVal = State->getSVal(ArgRegion);
  620     SVal V = CallOrMsg.getArgSVal(idx);
  926     SVal RetVal = state->getSVal(BindReturnTo, LCtx);
 1137 void RetainCountChecker::checkBind(SVal loc, SVal val, const Stmt *S,
 1137 void RetainCountChecker::checkBind(SVal loc, SVal val, const Stmt *S,
 1151                                                SVal Cond,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h
  294   void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
  294   void checkBind(SVal loc, SVal val, const Stmt *S, CheckerContext &C) const;
  315   ProgramStateRef evalAssume(ProgramStateRef state, SVal Cond,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
  219     SVal X = CurrSt->getSValAsScalarOrLoc(CE->getCallee(), LCtx);
  300       SVal RV = (*CE)->getReturnValue();
  682             SVal RecV = St->getSVal(RecExpr, NContext);
tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp
   42   SVal V = C.getSVal(RetE);
tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp
   43   SVal RetVal = C.getSVal(RetE);
tools/clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp
   72 static Optional<bool> isInvariantBreak(bool ExpectedValue, SVal ReturnV,
   90   SVal ReturnV = Call.getReturnValue();
  137   SVal ReturnV = State->getSVal(RS->getRetValue(), C.getLocationContext());
tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
  143     SVal Val = C.getState()->getSVal(I.getCapturedRegion());
  258   SVal V = C.getSVal(RetE);
  310                        SVal Val) override {
tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
  221   static SVal getArgSVal(const CallEvent &Call, ArgNoTy ArgNo) {
  247   SVal V = getArgSVal(Call, getArgNo());
  275   SVal V = getArgSVal(Call, getArgNo());
  325   SVal V = getArgSVal(Call, getArgNo());
  329   SVal OtherV = getArgSVal(Call, OtherArg);
  389     SVal V = C.getSValBuilder().conjureSymbolVal(
tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
   96   ProgramStateRef CheckNullStream(SVal SV, ProgramStateRef state,
  264   SVal Whence = state->getSVal(CE->getArg(2), C.getLocationContext());
  333 ProgramStateRef StreamChecker::CheckNullStream(SVal SV, ProgramStateRef state,
tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp
   50 ProgramStateRef taint::addTaint(ProgramStateRef State, SVal V,
   66     if (Optional<SVal> binding =
  122   SVal val = State->getSVal(S, LCtx);
  126 bool taint::isTainted(ProgramStateRef State, SVal V, TaintTagType Kind) {
tools/clang/lib/StaticAnalyzer/Checkers/Taint.h
   36 addTaint(ProgramStateRef State, SVal V,
   65 bool isTainted(ProgramStateRef State, SVal V,
   86   const SVal V;
   89   TaintBugVisitor(const SVal V) : V(V) {}
tools/clang/lib/StaticAnalyzer/Checkers/TestAfterDivZeroChecker.cpp
   81   void reportBug(SVal Val, CheckerContext &C) const;
   87   void setDivZeroMap(SVal Var, CheckerContext &C) const;
   88   bool hasDivZeroMap(SVal Var, const CheckerContext &C) const;
   89   bool isZero(SVal S, CheckerContext &C) const;
  115   SVal S = Succ->getSVal(E);
  134 bool TestAfterDivZeroChecker::isZero(SVal S, CheckerContext &C) const {
  144 void TestAfterDivZeroChecker::setDivZeroMap(SVal Var, CheckerContext &C) const {
  155 bool TestAfterDivZeroChecker::hasDivZeroMap(SVal Var,
  165 void TestAfterDivZeroChecker::reportBug(SVal Val, CheckerContext &C) const {
  205     SVal S = C.getSVal(B->getRHS());
  226       SVal Val = C.getSVal(LRHS ? B->getLHS() : B->getRHS());
  232       SVal Val;
  247     SVal Val = C.getSVal(IE->getSubExpr());
  252       SVal Val = C.getSVal(Condition);
tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp
   66                              SVal Cond,
  187     SVal Receiver = MCall->getReceiverSVal();
  225     SVal AntecedentV = SVB.makeSymbolVal(Antecedent);
  230       SVal ConsequentS = SVB.makeSymbolVal(*Consequent);
tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
   61   SVal X = Ctx.getSVal(Condition);
tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
   43   SVal Loc = C.getSVal(Ex);
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp
   29   void checkBind(SVal location, SVal val, const Stmt *S,
   29   void checkBind(SVal location, SVal val, const Stmt *S,
   34 void UndefinedAssignmentChecker::checkBind(SVal location, SVal val,
   34 void UndefinedAssignmentChecker::checkBind(SVal location, SVal val,
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h
  302   bool isPrimitiveUninit(const SVal &V);
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
  331     SVal V = State->getSVal(FieldVal);
  384 bool FindUninitializedFields::isPrimitiveUninit(const SVal &V) {
  464   SVal ObjectV = Context.getState()->getSVal(ThisLoc);
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp
  141   SVal V = State->getSVal(FR);
  206   SVal PointeeV = State->getSVal(R);
  227   SVal V = State->getSVal(FR);
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
  231   const SVal V = C.getSVal(oflagsEx);
  240   SVal maskedFlagsUC = C.getSValBuilder().evalBinOpNN(state, BO_And,
  324                                  const SVal argVal,
  376   SVal argVal = C.getSVal(arg);
  404     SVal argVal = C.getSVal(arg);
tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
   98   SVal sizeV = C.getSVal(SE);
  141   SVal LessThanZeroVal = svalBuilder.evalBinOp(state, BO_LT, sizeD, Zero, Ty);
  162   SVal EleSizeVal = svalBuilder.makeIntVal(EleSize.getQuantity(), SizeTy);
  165   SVal ArraySizeVal = svalBuilder.evalBinOpNN(
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
   56   const MemRegion *getVAListAsRegion(SVal SV, const Expr *VAExpr,
  163 const MemRegion *ValistChecker::getVAListAsRegion(SVal SV, const Expr *E,
  190   SVal VAListSVal = C.getSVal(VASubExpr);
tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp
   63   void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
   63   void checkBind(SVal L, SVal V, const Stmt *S, CheckerContext &C) const;
  154   SVal VforkRetVal = Call.getReturnValue();
  191 void VforkChecker::checkBind(SVal L, SVal V, const Stmt *S,
  191 void VforkChecker::checkBind(SVal L, SVal V, const Stmt *S,
tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
  176     auto ThiSVal =
  190     auto ThiSVal =
tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
   32                               llvm::ImmutableList<SVal> L) {
   51 using SValData = std::pair<SVal, uintptr_t>;
   52 using SValPair = std::pair<SVal, SVal>;
   52 using SValPair = std::pair<SVal, SVal>;
  126                                       llvm::ImmutableList<SVal> Vals) {
  299 const std::pair<SVal, uintptr_t>&
  300 BasicValueFactory::getPersistentSValWithData(const SVal& V, uintptr_t Data) {
  324 const std::pair<SVal, SVal>&
  324 const std::pair<SVal, SVal>&
  325 BasicValueFactory::getPersistentSValPair(const SVal& V1, const SVal& V2) {
  325 BasicValueFactory::getPersistentSValPair(const SVal& V1, const SVal& V2) {
  349 const SVal* BasicValueFactory::getPersistentSVal(SVal X) {
  349 const SVal* BasicValueFactory::getPersistentSVal(SVal X) {
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
  297     SVal SV = N->getSVal(*I);
  310       SVal PSV = N->getState()->getSVal(Reg->getRegion());
  319   SVal SV = N->getSVal(CE);
 2227 void PathSensitiveBugReport::markInteresting(SVal V,
 2240 PathSensitiveBugReport::getInterestingnessKind(SVal V) const {
 2291 bool PathSensitiveBugReport::isInteresting(SVal V) const {
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  165 static bool hasVisibleUpdate(const ExplodedNode *LeftNode, SVal LeftVal,
  166                              const ExplodedNode *RightNode, SVal RightVal) {
  183 static Optional<SVal> getSValForVar(const Expr *CondVarExpr,
  210   if (Optional<SVal> V = getSValForVar(CondVarExpr, N))
  225   if (Optional<SVal> V = getSValForVar(CondVarExpr, N))
  234   if (Optional<SVal> V = getSValForVar(E, N))
  267                                           SVal ValueAfter) {
  283   SVal ValueAtN = N->getState()->getSVal(RegionOfInterest);
  517     const SVal V = State->getSVal(FR);
  588     SVal V = Call->getArgSVal(I);
  621   SVal ValueAtReturn = LastReturnState->getSVal(RegionOfInterest);
  793   const SVal ValueAtDereference;
  800   MacroNullReturnSuppressionVisitor(const SubRegion *R, const SVal V)
  832         const SVal V) {
  982     SVal RetVal = Node->getSVal(S);
 1021     SVal V = State->getSVal(Ret, CalleeSFC);
 1035         SVal RValue = State->getRawSVal(*LValue, RetE->getType());
 1245                               const MemRegion *R, SVal V, const DeclStmt *DS) {
 1288     SVal V) {
 1317                                      const MemRegion *R, SVal V) {
 1482         SVal V = StoreSite->getSVal(S);
 1974     SVal LVal = LVNode->getSVal(Inner);
 1997       SVal V = LVState->getRawSVal(loc::MemRegionVal(R));
 2030   SVal V = LVState->getSValAsScalarOrLoc(Inner, LVNode->getLocationContext());
 2051     SVal RVal;
 2087     SVal V = N->getSVal(Receiver);
 2359           SVal V = state->getSVal(R);
 2803     SVal BoundVal = State->getSVal(R);
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
  295   SmallVector<SVal, 8> ValuesToInvalidate;
  415 SVal CallEvent::getArgSVal(unsigned Index) const {
  429 SVal CallEvent::getReturnValue() const {
  528     SVal ArgVal = Call.getArgSVal(Idx);
  683   SVal ThisVal = getCXXThisVal();
  712 SVal CXXInstanceCall::getCXXThisVal() const {
  718   SVal ThisVal = getSVal(Base);
  793   SVal ThisVal = getCXXThisVal();
  880     SVal ThisVal = loc::MemRegionVal(CapturedLambdaRegion);
  891 SVal CXXConstructorCall::getCXXThisVal() const {
  913   SVal ThisVal = getCXXThisVal();
  922 SVal CXXDestructorCall::getCXXThisVal() const {
  952       SVal IvarLVal = getState()->getLValue(PropIvar, getReceiverSVal());
  969 SVal ObjCMethodCall::getSelfSVal() const {
  977 SVal ObjCMethodCall::getReceiverSVal() const {
  988   SVal SelfVal = getSelfSVal();
 1001   SVal RecVal = getSVal(getOriginExpr()->getInstanceReceiver());
 1349   SVal SelfVal = getReceiverSVal();
 1399     SVal ThisVal = State->getSVal(ThisPtr);
 1415   SVal ThisVal = State->getSVal(ThisPtr);
tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
   23   SVal L = Pred->getSVal(Callee);
  101 static bool evalComparison(SVal LHSVal, BinaryOperatorKind ComparisonOp,
  102                            SVal RHSVal, ProgramStateRef State) {
  114   SVal Eval = Bldr.evalBinOp(State, ComparisonOp, LHSVal, RHSVal,
tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp
  317     SVal Loc;
  324                          SVal loc, bool isLoad, const Stmt *NodeEx,
  352                                             SVal location, bool isLoad,
  367     SVal Loc;
  368     SVal Val;
  374                      SVal loc, SVal val, const Stmt *s, ExprEngine &eng,
  374                      SVal loc, SVal val, const Stmt *s, ExprEngine &eng,
  395                                         SVal location, SVal val,
  395                                         SVal location, SVal val,
  511     SVal Target;
  516                              SVal Target, bool WasInlined, ExprEngine &Eng)
  534     const CXXNewExpr *NE, SVal Target, ExplodedNodeSet &Dst, ExplodedNode *Pred,
  637                                          SVal Cond, bool Assumption) {
tools/clang/lib/StaticAnalyzer/Core/Environment.cpp
   76 SVal Environment::lookupExpr(const EnvironmentEntry &E) const {
   77   const SVal* X = ExprBindings.lookup(E);
   79     SVal V = *X;
   85 SVal Environment::getSVal(const EnvironmentEntry &Entry,
  130                                          SVal V,
  181   llvm::ImmutableMapRef<EnvironmentEntry, SVal>
  189     const SVal &X = I.getData();
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  191 typedef llvm::ImmutableMap<ConstructedObjectKey, SVal>
  257       SVal V = state->getSVal(loc::MemRegionVal(R));
  258       SVal Constraint_untested = evalBinOp(state, BO_GT, V,
  280     SVal V = state->getSVal(loc::MemRegionVal(R));
  297         SVal V = state->getSVal(L);
  318   SVal InitValWithAdjustments = State->getSVal(InitWithAdjustments, LC);
  374     if (Optional<SVal> V = getObjectUnderConstruction(State, MT, LC)) {
  392   SVal Reg = loc::MemRegionVal(TR);
  393   SVal BaseReg = Reg;
  422   SVal InitVal = State->getSVal(Init, LC);
  463                                        const LocationContext *LC, SVal V) {
  473 Optional<SVal>
  478   return Optional<SVal>::create(State->get<ObjectsUnderConstruction>(Key));
  538                                               SVal cond, bool assumption) {
  581     SVal Value = I.second;
  831   SVal thisVal = State->getSVal(svalBuilder.getCXXThis(decl, stackFrame));
  834   SVal FieldLoc;
  857       SVal InitVal;
  865         SVal LValue = State->getSVal(Init, stackFrame);
  957   SVal dest = state->getLValue(varDecl, Pred->getLocationContext());
  992   SVal ArgVal = State->getSVal(Arg, LCtx);
 1031   SVal ThisVal = Pred->getState()->getSVal(ThisPtr);
 1036   SVal BaseVal = getStoreManager().evalDerivedToBase(ThisVal, BaseTy,
 1055   SVal FieldVal = State->getLValue(Member, ThisLoc);
 1076   if (Optional<SVal> V =
 1174 ProgramStateRef ExprEngine::escapeValue(ProgramStateRef State, SVal V,
 1433       Optional<SVal> ConstantVal = svalBuilder.getConstantVal(ArgE);
 1471         SVal result = svalBuilder.conjureSymbolVal(nullptr, Ex, LCtx,
 1483             SVal Val = State->getSVal(Child, LCtx);
 1830         SVal V = state->getSVal(Result, Pred->getLocationContext());
 1990 static SVal RecoverCastedSymbol(ProgramStateRef state,
 2128     SVal X = PrevState->getSVal(Condition, PredI->getLocationContext());
 2138           SVal recovered = RecoverCastedSymbol(PrevState, Condition,
 2213   SVal V = state->getSVal(builder.getTarget(), builder.getLocationContext());
 2341   SVal  CondV_untested = state->getSVal(CondE, builder.getLocationContext());
 2435     Optional<std::pair<SVal, QualType>> VInfo;
 2451         SVal CXXThisVal = state->getSVal(CXXThis);
 2459     SVal V = VInfo->first;
 2477     SVal V = svalBuilder.makeIntVal(ED->getInitVal());
 2482     SVal V = svalBuilder.getFunctionPointer(FD);
 2493     SVal V = svalBuilder.conjureSymbolVal(Ex, LCtx, getContext().VoidPtrTy,
 2543       SVal V = state->getLValue(T,
 2589         SVal MDVal = svalBuilder.getFunctionPointer(MD);
 2601       SVal baseExprVal =
 2605       SVal L = state->getLValue(field, baseExprVal);
 2656     SmallVector<SVal, 8> ValuesToInvalidate;
 2659       SVal SubExprVal = State->getSVal(SubExpr, LCtx);
 2669     SVal ResultVal = UnknownVal();
 2686 ExprEngine::processPointerEscapedOnBind(ProgramStateRef State, SVal Loc,
 2687                                         SVal Val, const LocationContext *LCtx) {
 2706   SVal StoredVal = State->getSVal(MR);
 2761                           SVal location, SVal Val,
 2761                           SVal location, SVal Val,
 2819                              ProgramStateRef state, SVal location, SVal Val,
 2819                              ProgramStateRef state, SVal location, SVal Val,
 2844                           SVal location,
 2865     SVal V = UnknownVal();
 2882                               SVal location,
 2938     SVal V = state->getSVal(Ex, Pred->getLocationContext());
 2949         SVal Val = svalBuilder.makeIntVal(1U, Ex->getType());
 2956         SVal Val = svalBuilder.makeIntVal(0U, Ex->getType());
 2977     SVal X = state->getSVal(O, Pred->getLocationContext());
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
   28 static SVal conjureOffsetSymbolOnLocation(
   29     SVal Symbol, SVal Other, Expr* Expression, SValBuilder &svalBuilder,
   29     SVal Symbol, SVal Other, Expr* Expression, SValBuilder &svalBuilder,
   58     SVal LeftV = state->getSVal(LHS, LCtx);
   59     SVal RightV = state->getSVal(RHS, LCtx);
   73       SVal ExprVal = B->isGLValue() ? LeftV : RightV;
  100       SVal Result = evalBinOp(state, Op, LeftV, RightV, B->getType());
  133     SVal location = LeftV;
  141       SVal V = state->getSVal(LHS, LCtx);
  158       SVal Result = svalBuilder.evalCast(evalBinOp(state, Op, V, RightV, CTy),
  164       SVal LHSVal;
  203   SVal V = svalBuilder.getBlockPointer(BD, T,
  237         SVal originalV;
  271   SVal OrigV = state->getSVal(Ex, LCtx);
  272   SVal V = svalBuilder.evalCast(OrigV, T, ExTy);
  292   SVal result = svalBuilder.conjureSymbolVal(nullptr, CastE, LCtx,
  359         SVal V = state->getSVal(Ex, LCtx);
  366         SVal V = state->getSVal(Ex, LCtx);
  388         SVal V = state->getSVal(Ex, LCtx);
  431         SVal V = state->getSVal(Ex, LCtx);
  440         SVal val = state->getSVal(Ex, LCtx);
  448         SVal val = state->getSVal(Ex, LCtx);
  489         SVal val = state->getSVal(Ex, LCtx);
  511         SVal V = svalBuilder.makeNull();
  517         SVal V = svalBuilder.getMemberPointer(nullptr);
  525         SVal V = state->getSVal(Ex, LCtx);
  527           SVal CastedPTMSV = svalBuilder.makePointerToMember(
  558   SVal V = State->getSVal(CL->getInitializer(), LCtx);
  602       SVal InitVal = state->getSVal(InitEx, LC);
  692   SVal X;
  715     SVal RHSVal = N->getState()->getSVal(RHS, Pred->getLocationContext());
  745     llvm::ImmutableList<SVal> vals = getBasicVals().getEmptySValList();
  750       SVal V = svalBuilder.makeCompoundVal(T, vals);
  757       SVal V = state->getSVal(cast<Expr>(*it), LCtx);
  772   SVal V;
  815   SVal V;
  855     SVal X = svalBuilder.makeIntVal(IV);
  971       SVal X = svalBuilder.makeZeroVal(Ex->getType());
  985           SVal SV = svalBuilder.getMemberPointer(cast<DeclaratorDecl>(VD));
 1012       SVal V = state->getSVal(Ex, LCtx);
 1035           SVal Result;
 1069   SVal loc = state->getSVal(Ex, LCtx);
 1081     SVal V2_untested = state->getSVal(Ex, LCtx);
 1103     SVal RHS;
 1104     SVal Result;
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
   42   SVal ThisVal;
   73   SVal V = Call.getArgSVal(0);
   98 SVal ExprEngine::makeZeroElementRegion(ProgramStateRef State, SVal LValue,
   98 SVal ExprEngine::makeZeroElementRegion(ProgramStateRef State, SVal LValue,
  112 std::pair<ProgramStateRef, SVal> ExprEngine::prepareForObjectConstruction(
  128       SVal LValue = State->getLValue(Var, LCtx);
  144       SVal ThisVal = State->getSVal(ThisPtr);
  147       SVal FieldVal;
  166         SVal V = *getObjectUnderConstruction(State, NE, LCtx);
  226         SVal V = SVB.conjureSymbolVal(&TopLevelSymRegionTag, RetE, SFC,
  243       SVal V;
  282       SVal V = UnknownVal();
  324       SVal V = UnknownVal();
  401   SVal Target = UnknownVal();
  403   if (Optional<SVal> ElidedTarget =
  469     SVal ThisVal = State->getSVal(ThisPtr);
  477       SVal BaseVal = getStoreManager().evalDerivedToBase(ThisVal, CE->getType(),
  707     SVal RetVal = State->getSVal(CNE, LCtx);
  746   SVal symVal = UnknownVal();
  802   SVal Result = symVal;
  824     SVal PlacementLoc = State->getSVal(CNE->getPlacementArg(0), LCtx);
  864   SVal V = svalBuilder.conjureSymbolVal(CS, LCtx, VD->getType(),
  885   SVal V = state->getSVal(loc::MemRegionVal(R));
  896   SVal V = loc::MemRegionVal(R);
  907     SVal FieldLoc = State->getLValue(FieldForCapture, V);
  909     SVal InitVal;
  928   SVal LambdaRVal = State->getSVal(R);
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
  125 static SVal adjustReturnValue(SVal V, QualType ExpectedTy, QualType ActualTy,
  125 static SVal adjustReturnValue(SVal V, QualType ExpectedTy, QualType ActualTy,
  230       SVal V = state->getSVal(RS, LCtx);
  251       SVal ThisV = state->getSVal(This);
  262       SVal AllocV = state->getSVal(CNE, callerCtx);
  535     if (Optional<SVal> V =
  537       SVal VV = *V;
  620     SVal ThisV = C->getCXXThisVal();
  625   SVal R;
  630     SVal Target;
tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp
   26   SVal baseVal = state->getSVal(Ex->getBase(), LCtx);
   27   SVal location = state->getLValue(Ex->getDecl(), baseVal);
   48     const ObjCForCollectionStmt *S, const Stmt *elem, SVal elementV,
   56     SVal hasElementsV = svalBuilder.makeTruthVal(hasElements);
   69         SVal V;
  117   SVal collectionV = state->getSVal(collection, Pred->getLocationContext());
  119   SVal elementV;
  187     SVal recVal = Msg->getReceiverSVal();
  251       SVal recVal = UpdatedMsg->getReceiverSVal();
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  335                                   QualType ElementType, SVal Idx,
 1242     SVal index = ER->getIndex();
 1409       SVal Index = ER->getIndex();
tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp
  120                                       SVal V,
  134 ProgramState::bindDefaultInitial(SVal loc, SVal V,
  134 ProgramState::bindDefaultInitial(SVal loc, SVal V,
  144 ProgramState::bindDefaultZero(SVal loc, const LocationContext *LCtx) const {
  153 typedef ArrayRef<SVal> ValueList;
  163   SmallVector<SVal, 8> Values;
  245 SVal ProgramState::getSValAsScalarOrLoc(const MemRegion *R) const {
  261 SVal ProgramState::getSVal(Loc location, QualType T) const {
  262   SVal V = getRawSVal(location, T);
  304                                            SVal V, bool Invalidate) const{
  337   SVal newIdx = svalBuilder.evalBinOpNN(this, BO_Add,
  343   SVal newBound =
  351   SVal inBound = svalBuilder.evalBinOpNN(this, BO_LT, newIdx.castAs<NonLoc>(),
  361 ConditionTruthVal ProgramState::isNonNull(SVal V) const {
  368 ConditionTruthVal ProgramState::areEqual(SVal Lhs, SVal Rhs) const {
  368 ConditionTruthVal ProgramState::areEqual(SVal Lhs, SVal Rhs) const {
  372 ConditionTruthVal ProgramState::isNull(SVal V) const {
  566 bool ScanReachableSymbols::scan(SVal val) {
  632 bool ProgramState::scanReachableSymbols(SVal val, SymbolVisitor& visitor) const {
tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
  255   bool canReasonAbout(SVal X) const override;
  336 bool RangeConstraintManager::canReasonAbout(SVal X) const {
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  146 typedef llvm::ImmutableMap<BindingKey, SVal>    ClusterBindings;
  147 typedef llvm::ImmutableMapRef<BindingKey, SVal> ClusterBindingsRef;
  148 typedef std::pair<BindingKey, SVal> BindingPair;
  196   RegionBindingsRef addBinding(BindingKey K, SVal V) const;
  199                                BindingKey::Kind k, SVal V) const;
  201   const SVal *lookup(BindingKey K) const;
  202   const SVal *lookup(const MemRegion *R, BindingKey::Kind k) const;
  215   Optional<SVal> getDirectBinding(const MemRegion *R) const;
  219   Optional<SVal> getDefaultBinding(const MemRegion *R) const;
  265 Optional<SVal> RegionBindingsRef::getDirectBinding(const MemRegion *R) const {
  266   return Optional<SVal>::create(lookup(R, BindingKey::Direct));
  269 Optional<SVal> RegionBindingsRef::getDefaultBinding(const MemRegion *R) const {
  270   return Optional<SVal>::create(lookup(R, BindingKey::Default));
  273 RegionBindingsRef RegionBindingsRef::addBinding(BindingKey K, SVal V) const {
  287                                                 SVal V) const {
  291 const SVal *RegionBindingsRef::lookup(BindingKey K) const {
  298 const SVal *RegionBindingsRef::lookup(const MemRegion *R,
  357   typedef std::vector<SVal> SValListTy;
  376                         ArrayRef<SVal> Values,
  402   SVal ArrayToPointer(Loc Array, QualType ElementTy) override;
  426                              ArrayRef<SVal> Values,
  443   StoreRef Bind(Store store, Loc LV, SVal V) override {
  447   RegionBindingsRef bind(RegionBindingsConstRef B, Loc LV, SVal V);
  452                               SVal V) override {
  479     SVal V = svalBuilder.makeZeroVal(Ctx.CharTy);
  502                                const TypedValueRegion* R, SVal V);
  506                                const TypedValueRegion* R, SVal V);
  510                               SVal V);
  516                                   SVal DefaultVal);
  549   SVal getBinding(Store S, Loc L, QualType T) override {
  553   Optional<SVal> getDefaultBinding(Store S, const MemRegion *R) override {
  561   SVal getBinding(RegionBindingsConstRef B, Loc L, QualType T = QualType());
  563   SVal getBindingForElement(RegionBindingsConstRef B, const ElementRegion *R);
  565   SVal getBindingForField(RegionBindingsConstRef B, const FieldRegion *R);
  567   SVal getBindingForObjCIvar(RegionBindingsConstRef B, const ObjCIvarRegion *R);
  569   SVal getBindingForVar(RegionBindingsConstRef B, const VarRegion *R);
  571   SVal getBindingForLazySymbol(const TypedValueRegion *R);
  573   SVal getBindingForFieldOrElementCommon(RegionBindingsConstRef B,
  577   SVal getLazyBinding(const SubRegion *LazyBindingRegion,
  585   SVal getBindingForStruct(RegionBindingsConstRef B, const TypedValueRegion *R);
  586   SVal getBindingForArray(RegionBindingsConstRef B, const TypedValueRegion *R);
  594   Optional<SVal> getBindingForDerivedDefaultValue(RegionBindingsConstRef B,
  879   SVal Extent = Top->getExtent(SVB);
 1018   void VisitBinding(SVal V);
 1041 void InvalidateRegionsWorker::VisitBinding(SVal V) {
 1125         SVal V = RM.getBinding(B, loc::MemRegionVal(VR));
 1234           SVal V = I.getData();
 1289   SVal V = svalBuilder.conjureSymbolVal(/* symbolTag = */ (const void*) GS, Ex, LCtx,
 1305                                           ArrayRef<SVal> Values,
 1307   for (ArrayRef<SVal>::iterator I = Values.begin(),
 1309     SVal V = *I;
 1336                                      ArrayRef<SVal> Values,
 1397   SVal Size = cast<SubRegion>(R)->getExtent(svalBuilder);
 1430 SVal RegionStoreManager::ArrayToPointer(Loc Array, QualType T) {
 1447 SVal RegionStoreManager::getBinding(RegionBindingsConstRef B, Loc L, QualType T) {
 1552   const SVal *V = B.lookup(R, BindingKey::Direct);
 1594   Optional<SVal> V = B.getDefaultBinding(R);
 1668 SVal RegionStoreManager::getBindingForElement(RegionBindingsConstRef B,
 1675   if (const Optional<SVal> &V = B.getDirectBinding(R))
 1689     SVal Idx = R->getIndex();
 1730               if (Optional<SVal> V = svalBuilder.getConstantVal(ElemInit))
 1761           if (const Optional<SVal> &V = B.getDirectBinding(superR)) {
 1778 SVal RegionStoreManager::getBindingForField(RegionBindingsConstRef B,
 1782   if (const Optional<SVal> &V = B.getDirectBinding(R))
 1790       if (Optional<SVal> V = svalBuilder.getConstantVal(Init))
 1808               if (Optional<SVal> V = svalBuilder.getConstantVal(FieldInit))
 1819 Optional<SVal>
 1825   if (const Optional<SVal> &D = B.getDefaultBinding(superR)) {
 1826     const SVal &val = D.getValue();
 1848 SVal RegionStoreManager::getLazyBinding(const SubRegion *LazyBindingRegion,
 1850   SVal Result;
 1877 SVal
 1916     if (Optional<SVal> D = getBindingForDerivedDefaultValue(B, Base, R, Ty)) {
 1962 SVal RegionStoreManager::getBindingForObjCIvar(RegionBindingsConstRef B,
 1965   if (const Optional<SVal> &V = B.getDirectBinding(R))
 1971   if (const Optional<SVal> &V = B.getDefaultBinding(superR)) {
 1982 SVal RegionStoreManager::getBindingForVar(RegionBindingsConstRef B,
 1986   if (Optional<SVal> V = B.getDirectBinding(R))
 1989   if (Optional<SVal> V = B.getDefaultBinding(R))
 2003       if (Optional<SVal> V = svalBuilder.getConstantVal(Init))
 2024         if (Optional<SVal> V = svalBuilder.getConstantVal(Init))
 2034     if (Optional<SVal> V = getBindingForDerivedDefaultValue(B, MS, R, T)) {
 2045 SVal RegionStoreManager::getBindingForLazySymbol(const TypedValueRegion *R) {
 2075     SVal V = I->second;
 2109 SVal RegionStoreManager::getBindingForStruct(RegionBindingsConstRef B,
 2118 SVal RegionStoreManager::getBindingForArray(RegionBindingsConstRef B,
 2140       const SVal &D = CI.getData();
 2166 RegionStoreManager::bind(RegionBindingsConstRef B, Loc L, SVal V) {
 2208   SVal V;
 2234                               SVal Init) {
 2247     SVal V = getBinding(B.asStore(), *MRV, R->getValueType());
 2292                                                  SVal V) {
 2361     SVal V = getBindingForField(getRegionBindings(LCV.getStore()), SourceFR);
 2372                                                  SVal V) {
 2492                                   SVal Val) {
 2527   void VisitBinding(SVal V);
 2589 void RemoveDeadBindingsWorker::VisitBinding(SVal V) {
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
   99 SVal SValBuilder::convertToArrayIndex(SVal val) {
   99 SVal SValBuilder::convertToArrayIndex(SVal val) {
  285 Optional<SVal> SValBuilder::getConstantVal(const Expr *E) {
  347       Optional<SVal> Val = getConstantVal(SE);
  377 SVal SValBuilder::makeSymExprValNN(BinaryOperator::Opcode Op,
  404 SVal SValBuilder::evalBinOp(ProgramStateRef state, BinaryOperator::Opcode op,
  405                             SVal lhs, SVal rhs, QualType type) {
  405                             SVal lhs, SVal rhs, QualType type) {
  437 ConditionTruthVal SValBuilder::areEqual(ProgramStateRef state, SVal lhs,
  438                                         SVal rhs) {
  442 SVal SValBuilder::evalEQ(ProgramStateRef state, SVal lhs, SVal rhs) {
  442 SVal SValBuilder::evalEQ(ProgramStateRef state, SVal lhs, SVal rhs) {
  442 SVal SValBuilder::evalEQ(ProgramStateRef state, SVal lhs, SVal rhs) {
  489 SVal SValBuilder::evalIntegralCast(ProgramStateRef state, SVal val,
  489 SVal SValBuilder::evalIntegralCast(ProgramStateRef state, SVal val,
  525 SVal SValBuilder::evalCast(SVal val, QualType castTy, QualType originalTy) {
  525 SVal SValBuilder::evalCast(SVal val, QualType castTy, QualType originalTy) {
tools/clang/lib/StaticAnalyzer/Core/SVals.cpp
  242 SVal nonloc::ConcreteInt::evalBinOp(SValBuilder &svalBuilder,
  268 SVal loc::ConcreteInt::evalBinOp(BasicValueFactory& BasicVals,
  334       for (const auto &I : C) {
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
   26   SVal dispatchCast(SVal val, QualType castTy) override;
   26   SVal dispatchCast(SVal val, QualType castTy) override;
   27   SVal evalCastFromNonLoc(NonLoc val, QualType castTy) override;
   28   SVal evalCastFromLoc(Loc val, QualType castTy) override;
   36   SVal evalMinus(NonLoc val) override;
   37   SVal evalComplement(NonLoc val) override;
   38   SVal evalBinOpNN(ProgramStateRef state, BinaryOperator::Opcode op,
   40   SVal evalBinOpLL(ProgramStateRef state, BinaryOperator::Opcode op,
   42   SVal evalBinOpLN(ProgramStateRef state, BinaryOperator::Opcode op,
   47   const llvm::APSInt *getKnownValue(ProgramStateRef state, SVal V) override;
   51   SVal simplifySVal(ProgramStateRef State, SVal V) override;
   51   SVal simplifySVal(ProgramStateRef State, SVal V) override;
   53   SVal MakeSymIntVal(const SymExpr *LHS, BinaryOperator::Opcode op,
   68 SVal SimpleSValBuilder::dispatchCast(SVal Val, QualType CastTy) {
   68 SVal SimpleSValBuilder::dispatchCast(SVal Val, QualType CastTy) {
   74 SVal SimpleSValBuilder::evalCastFromNonLoc(NonLoc val, QualType castTy) {
  130 SVal SimpleSValBuilder::evalCastFromLoc(Loc val, QualType castTy) {
  195 SVal SimpleSValBuilder::evalMinus(NonLoc val) {
  204 SVal SimpleSValBuilder::evalComplement(NonLoc X) {
  217 SVal SimpleSValBuilder::MakeSymIntVal(const SymExpr *LHS,
  316   SVal Result =
  504 SVal SimpleSValBuilder::evalBinOpNN(ProgramStateRef state,
  753       SVal simplifiedLhs = simplifySVal(state, lhs);
  774 static SVal evalBinOpFieldRegionFieldRegion(const FieldRegion *LeftFR,
  821 SVal SimpleSValBuilder::evalBinOpLL(ProgramStateRef state,
  897       SVal ResultVal =
 1027         SVal LeftIndexVal = LeftER->getIndex();
 1037         SVal RightIndexVal = RightER->getIndex();
 1056       SVal R = evalBinOpFieldRegionFieldRegion(LeftFR, RightFR, op, resultTy,
 1103 SVal SimpleSValBuilder::evalBinOpLN(ProgramStateRef state,
 1111         SVal Result = lhs;
 1171     SVal index = UnknownVal();
 1211                                                    SVal V) {
 1229 SVal SimpleSValBuilder::simplifySVal(ProgramStateRef State, SVal V) {
 1229 SVal SimpleSValBuilder::simplifySVal(ProgramStateRef State, SVal V) {
 1234   class Simplifier : public FullSValVisitor<Simplifier, SVal> {
 1242     llvm::DenseMap<SymbolRef, SVal> Cached;
 1244     static bool isUnchanged(SymbolRef Sym, SVal Val) {
 1248     SVal cache(SymbolRef Sym, SVal V) {
 1248     SVal cache(SymbolRef Sym, SVal V) {
 1253     SVal skip(SymbolRef Sym) {
 1261     SVal VisitSymbolData(const SymbolData *S) {
 1273     SVal VisitSymIntExpr(const SymIntExpr *S) {
 1278       SVal LHS = Visit(S->getLHS());
 1282       SVal RHS;
 1305     SVal VisitSymSymExpr(const SymSymExpr *S) {
 1318       SVal LHS = Visit(S->getLHS());
 1319       SVal RHS = Visit(S->getRHS());
 1327     SVal VisitSymExpr(SymbolRef S) { return nonloc::SymbolVal(S); }
 1329     SVal VisitMemRegion(const MemRegion *R) { return loc::MemRegionVal(R); }
 1331     SVal VisitNonLocSymbolVal(nonloc::SymbolVal V) {
 1337     SVal VisitSVal(SVal V) { return V; }
 1337     SVal VisitSVal(SVal V) { return V; }
 1346   SVal SimplifiedV = Simplifier(State).Visit(V);
tools/clang/lib/StaticAnalyzer/Core/Store.cpp
  228 static bool regionMatchesCXXRecordType(SVal V, QualType Ty) {
  248 SVal StoreManager::evalDerivedToBase(SVal Derived, const CastExpr *Cast) {
  248 SVal StoreManager::evalDerivedToBase(SVal Derived, const CastExpr *Cast) {
  255   SVal Result = Derived;
  264 SVal StoreManager::evalDerivedToBase(SVal Derived, const CXXBasePath &Path) {
  264 SVal StoreManager::evalDerivedToBase(SVal Derived, const CXXBasePath &Path) {
  266   SVal Result = Derived;
  273 SVal StoreManager::evalDerivedToBase(SVal Derived, QualType BaseType,
  273 SVal StoreManager::evalDerivedToBase(SVal Derived, QualType BaseType,
  314 SVal StoreManager::attemptDownCast(SVal Base, QualType TargetType,
  314 SVal StoreManager::attemptDownCast(SVal Base, QualType TargetType,
  399 SVal StoreManager::CastRetrievedVal(SVal V, const TypedValueRegion *R,
  399 SVal StoreManager::CastRetrievedVal(SVal V, const TypedValueRegion *R,
  432 SVal StoreManager::getLValueFieldOrIvar(const Decl *D, SVal Base) {
  432 SVal StoreManager::getLValueFieldOrIvar(const Decl *D, SVal Base) {
  473 SVal StoreManager::getLValueIvar(const ObjCIvarDecl *decl, SVal base) {
  473 SVal StoreManager::getLValueIvar(const ObjCIvarDecl *decl, SVal base) {
  477 SVal StoreManager::getLValueElement(QualType elementType, NonLoc Offset,
  478                                     SVal Base) {
  510   SVal BaseIdx = ElemR->getIndex();
  547                                                     SVal val) {
tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
  415       SVal Idx = ER->getIndex();
tools/clang/unittests/StaticAnalyzer/RegisterCustomCheckersTest.cpp
   89   void checkLocation(SVal Loc, bool IsLoad, const Stmt *S,
tools/clang/unittests/StaticAnalyzer/StoreTest.cpp
   44     SVal Zero = SVB.makeZeroVal(ACtx.IntTy);
   45     SVal One = SVB.makeIntVal(1, ACtx.IntTy);
   46     SVal NarrowZero = SVB.makeZeroVal(ACtx.CharTy);
usr/include/c++/7.4.0/bits/alloc_traits.h
  387       using allocator_type = allocator<_Tp>;
  389       using value_type = _Tp;
  392       using pointer = _Tp*;
  395       using const_pointer = const _Tp*;
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
  486 	destroy(allocator_type& __a, _Up* __p)
usr/include/c++/7.4.0/bits/allocator.h
  108     class allocator: public __allocator_base<_Tp>
  113       typedef _Tp*       pointer;
  114       typedef const _Tp* const_pointer;
  115       typedef _Tp&       reference;
  116       typedef const _Tp& const_reference;
  117       typedef _Tp        value_type;
  137 	allocator(const allocator<_Tp1>&) throw() { }
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
  104     : public __and_<__not_<is_nothrow_move_constructible<_Tp>>,
  105                     is_copy_constructible<_Tp>>::type { };
  136     inline _GLIBCXX17_CONSTEXPR _Tp*
  137     addressof(_Tp& __r) noexcept
  143     const _Tp* addressof(const _Tp&&) = delete;
  143     const _Tp* addressof(const _Tp&&) = delete;
usr/include/c++/7.4.0/bits/stl_construct.h
   74     _Construct(_T1* __p, _Args&&... __args)
   74     _Construct(_T1* __p, _Args&&... __args)
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
  204 	     allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_iterator.h
 1224     __make_move_if_noexcept_iterator(_Tp* __i)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
  192       typedef _Tp                         value_type;
  194       typedef const _Tp*                  pointer;
  195       typedef const _Tp&                  reference;
usr/include/c++/7.4.0/bits/stl_pair.h
  100 	return __and_<is_constructible<_T1, const _U1&>,
  100 	return __and_<is_constructible<_T1, const _U1&>,
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  129 				  is_convertible<_U2&&, _T2>>;
  129 				  is_convertible<_U2&&, _T2>>;
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  134 		      is_constructible<_T2, _U2&&>,
  134 		      is_constructible<_T2, _U2&&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  143 				  is_convertible<const _U2&, _T2>>;
  143 				  is_convertible<const _U2&, _T2>>;
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  209     : private __pair_base<_T1, _T2>
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  283 			    _T1, _T2>;
  291         constexpr pair(const pair<_U1, _U2>& __p)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  360 	constexpr pair(pair<_U1, _U2>&& __p)
  362 	  second(std::forward<_U2>(__p.second)) { }
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  402       typename enable_if<__and_<is_assignable<_T1&, const _U1&>,
  403 				is_assignable<_T2&, const _U2&>>::value,
  403 				is_assignable<_T2&, const _U2&>>::value,
  405 	operator=(const pair<_U1, _U2>& __p)
  405 	operator=(const pair<_U1, _U2>& __p)
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  413       typename enable_if<__and_<is_assignable<_T1&, _U1&&>,
  414 				is_assignable<_T2&, _U2&&>>::value,
  414 				is_assignable<_T2&, _U2&&>>::value,
  416 	operator=(pair<_U1, _U2>&& __p)
  416 	operator=(pair<_U1, _U2>&& __p)
  522     constexpr pair<typename __decay_and_strip<_T1>::__type,
  524     make_pair(_T1&& __x, _T2&& __y)
  524     make_pair(_T1&& __x, _T2&& __y)
  526       typedef typename __decay_and_strip<_T1>::__type __ds_type1;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/bits/stl_uninitialized.h
  288 			   _ForwardIterator __result, allocator<_Tp>&)
usr/include/c++/7.4.0/bits/stl_vector.h
   77 	rebind<_Tp>::other _Tp_alloc_type;
  216     class vector : protected _Vector_base<_Tp, _Alloc>
  227       typedef _Vector_base<_Tp, _Alloc>			_Base;
  232       typedef _Tp					value_type;
  919       _Tp*
  923       const _Tp*
 1483 	_M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/bits/unique_ptr.h
  824     make_unique(_Args&&... __args)
usr/include/c++/7.4.0/ext/alloc_traits.h
  117       { typedef typename _Base_type::template rebind_alloc<_Tp> other; };
usr/include/c++/7.4.0/ext/new_allocator.h
   63       typedef _Tp*       pointer;
   64       typedef const _Tp* const_pointer;
   65       typedef _Tp&       reference;
   66       typedef const _Tp& const_reference;
   67       typedef _Tp        value_type;
   84 	new_allocator(const new_allocator<_Tp1>&) _GLIBCXX_USE_NOEXCEPT { }
  111 	return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));
  130       { return size_t(-1) / sizeof(_Tp); }
  135 	construct(_Up* __p, _Args&&... __args)
  135 	construct(_Up* __p, _Args&&... __args)
  136 	{ ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
  140 	destroy(_Up* __p) { __p->~_Up(); }
usr/include/c++/7.4.0/initializer_list
   50       typedef _E 		value_type;
   51       typedef const _E& 	reference;
   52       typedef const _E& 	const_reference;
   54       typedef const _E* 	iterator;
   55       typedef const _E* 	const_iterator;
usr/include/c++/7.4.0/tuple
  125       constexpr _Head_base(const _Head& __h)
  132         constexpr _Head_base(_UHead&& __h)
  159       static constexpr _Head&
  162       static constexpr const _Head&
  210       constexpr _Tuple_impl(const _Head& __head, const _Tail&... __tail)
  216         constexpr _Tuple_impl(_UHead&& __head, _UTail&&... __tail)
  242 	_Tuple_impl(allocator_arg_t __tag, const _Alloc& __a)
  248 		    const _Head& __head, const _Tail&... __tail)
  350       static constexpr _Head&
  353       static constexpr const _Head&
  360       constexpr _Tuple_impl(const _Head& __head)
  365         constexpr _Tuple_impl(_UHead&& __head)
  390 		    const _Head& __head)
  473       return __and_<is_constructible<_Elements, const _UElements&>...>::value;
  479       return __and_<is_convertible<const _UElements&, _Elements>...>::value;
  485       return __and_<is_constructible<_Elements, _UElements&&>...>::value;
  491       return __and_<is_convertible<_UElements&&, _Elements>...>::value;
  947         constexpr tuple(const _T1& __a1, const _T2& __a2)
  956         explicit constexpr tuple(const _T1& __a1, const _T2& __a2)
  971         constexpr tuple(_U1&& __a1, _U2&& __a2)
 1066 	tuple(allocator_arg_t __tag, const _Alloc& __a)
 1078 	      const _T1& __a1, const _T2& __a2)
 1090 	      const _T1& __a1, const _T2& __a2)
 1241         operator=(const pair<_U1, _U2>& __in)
 1250         operator=(pair<_U1, _U2>&& __in)
 1253 	  this->_M_tail(*this)._M_head(*this) = std::forward<_U2>(__in.second);
 1588     constexpr tuple<_Elements&...>
 1589     tie(_Elements&... __args) noexcept
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  762     typename add_rvalue_reference<_Tp>::type declval() noexcept;
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  889       typedef decltype(__test<_Tp>(0)) type;
  894     : public __and_<__not_<is_void<_Tp>>,
  895                     __is_default_constructible_impl<_Tp>>
  915     : public __is_default_constructible_atom<_Tp>::type
  921     : public __is_default_constructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1215     : public __and_<is_constructible<_Tp, _Args...>,
 1216 		    __is_nt_constructible_impl<_Tp, _Args...>>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1246     : public is_nothrow_constructible<_Tp, _Tp&&>
 1252     : public __is_nothrow_move_constructible_impl<_Tp>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1292     : public __is_copy_assignable_impl<_Tp>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1310     : public __is_move_assignable_impl<_Tp>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1358     : public __is_nt_move_assignable_impl<_Tp>
 1377     static void __helper(const _Tp&);
 1390     typedef decltype(__test(declval<_Tp>())) type;
 1395       : public __is_implicitly_default_constructible_impl<_Tp>::type
 1400       : public __and_<is_default_constructible<_Tp>,
 1401                       __is_implicitly_default_constructible_safe<_Tp>>
 1447     : public __and_<is_destructible<_Tp>, integral_constant<bool,
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 1955     { typedef _Tp     type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2118       typedef typename remove_reference<_Tp>::type __remove_type;
 2131       typedef _Tp __type;
 2144 	typename decay<_Tp>::type>::__type __type;
utils/unittest/googletest/include/gtest/gtest-printers.h
  223 void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
  276   static ::std::string Format(const ToPrint& value) {
  351     const T1& value, const T2& /* other_operand */) {
  351     const T1& value, const T2& /* other_operand */) {
  352   return FormatForComparison<T1, T2>::Format(value);
  352   return FormatForComparison<T1, T2>::Format(value);
  366 void UniversalPrint(const T& value, ::std::ostream* os);
  373                     const C& container, ::std::ostream* os) {
  439                     const T& value, ::std::ostream* os) {
  455 void PrintTo(const T& value, ::std::ostream* os) {
  478   DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os);
  699   static void Print(const T& value, ::std::ostream* os) {
  784   static void Print(const T& value, ::std::ostream* os) {
  856   typedef T T1;
  983   internal::UniversalTersePrinter<T>::Print(value, &ss);
utils/unittest/googletest/include/gtest/gtest.h
 1377                                    const T1& lhs, const T2& rhs) {
 1377                                    const T1& lhs, const T2& rhs) {
 1389                             const T1& lhs,
 1390                             const T2& rhs) {
 1419                                  const T1& lhs,
 1420                                  const T2& rhs) {
utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   35 auto printable(const T &V) -> decltype(StreamSwitch<T>::printable(V)) {
   37   return StreamSwitch<T>::printable(V);
   54   const T& V;
   55   friend std::ostream &operator<<(std::ostream &S, const RawStreamProxy<T> &V) {
   69   static const RawStreamProxy<T> printable(const T &V) { return {V}; }
   69   static const RawStreamProxy<T> printable(const T &V) { return {V}; }
utils/unittest/googletest/include/gtest/internal/gtest-internal.h
   94 ::std::string PrintToString(const T& value);