|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
Derived Classes
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h 199 class MemSpaceRegion : public MemRegion {
436 class SubRegion : public MemRegion {
Declarations
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 61 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h 39 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 48 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 80 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h 54 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h 47 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 44 class MemRegion;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h 25 class MemRegion;
References
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> {};
369 FoldingSetTrait<T>::Profile(X, TempID);
375 FoldingSetTrait<T>::Profile(X, TempID);
410 using iterator = FoldingSetIterator<T>;
415 using const_iterator = FoldingSetIterator<const T>;
420 using bucket_iterator = FoldingSetBucketIterator<T>;
432 bool RemoveNode(T *N) { return FoldingSetBase::RemoveNode(N); }
437 T *GetOrInsertNode(T *N) {
437 T *GetOrInsertNode(T *N) {
444 T *FindNodeOrInsertPos(const FoldingSetNodeID &ID, void *&InsertPos) {
451 void InsertNode(T *N, void *InsertPos) {
457 void InsertNode(T *N) {
473 template <class T> class FoldingSet final : public FoldingSetImpl<T> {
474 using Super = FoldingSetImpl<T>;
480 T *TN = static_cast<T *>(N);
481 FoldingSetTrait<T>::Profile(*TN, ID);
488 T *TN = static_cast<T *>(N);
489 return FoldingSetTrait<T>::Equals(*TN, ID, IDHash, TempID);
495 T *TN = static_cast<T *>(N);
496 return FoldingSetTrait<T>::ComputeHash(*TN, TempID);
include/llvm/Support/Casting.h 57 static inline bool doit(const From &Val) {
66 static inline bool doit(const From &) { return true; }
104 static inline bool doit(const From *Val) {
106 return isa_impl<To, From>::doit(*Val);
106 return isa_impl<To, From>::doit(*Val);
122 return isa_impl_wrap<To, SimpleFrom,
132 return isa_impl_cl<To,FromTy>::doit(Val);
142 return isa_impl_wrap<X, const Y,
176 using ret_type = const To *; // Constant pointer arg case, return const Ty*
198 using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
204 using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
210 To, From, typename simplify_type<From>::SimpleType>::ret_type;
227 static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
228 typename cast_retty<To, FromTy>::ret_type Res2
256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
265 return cast_convert_val<X, Y*,
265 return cast_convert_val<X, Y*,
266 typename simplify_type<Y*>::SimpleType>::doit(Val);
305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
306 cast_or_null(Y *Val) {
337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
343 return isa<X>(Val) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h 56 static inline void *getAsVoidPointer(T *P) { return P; }
57 static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
59 enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
91 typedef PointerLikeTypeTraits<T *> NonConst;
93 static inline const void *getAsVoidPointer(const T *P) {
96 static inline const T *getFromVoidPointer(const void *P) {
tools/clang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h 55 const MemRegion *R = V.getRegion();
91 const MemRegion *R = S->getRegion();
234 std::string VisitMemRegion(const MemRegion *R) {
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h 318 llvm::DenseMap<const MemRegion *, bugreporter::TrackingKind>
438 const MemRegion *R,
449 bool isInteresting(const MemRegion *R) const;
457 getInterestingnessKind(const MemRegion *R) const;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h 126 const MemRegion *R;
149 FindLastStoreBRVisitor(KnownSVal V, const MemRegion *R,
325 const MemRegion *R;
328 UndefOrNullArgVisitor(const MemRegion *InR) : R(InR) {}
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h 338 ArrayRef<const MemRegion *> Explicits,
339 ArrayRef<const MemRegion *> Regions,
tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h 364 ArrayRef<const MemRegion *> ExplicitRegions,
365 ArrayRef<const MemRegion *> Regions,
480 ArrayRef<const MemRegion *> ExplicitRegions,
481 ArrayRef<const MemRegion *> Regions,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h 110 const MemRegion *R = nullptr;
115 RuntimeDefinition(const Decl *InD, const MemRegion *InR): D(InD), R(InR) {}
126 const MemRegion *getDispatchRegion() { return R; }
772 using DtorDataTy = llvm::PointerIntPair<const MemRegion *, 1, bool>;
782 const MemRegion *Target, bool IsBaseDestructor,
828 CXXConstructorCall(const CXXConstructExpr *CE, const MemRegion *Target,
1223 getCXXConstructorCall(const CXXConstructExpr *E, const MemRegion *Target,
1230 const MemRegion *Target, bool IsBase,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h 136 static const MemRegion *getLocationRegionIfPostStore(const ExplodedNode *N) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicType.h 33 DynamicTypeInfo getDynamicTypeInfo(ProgramStateRef State, const MemRegion *MR);
37 const MemRegion *MR);
41 const MemRegion *MR,
46 ProgramStateRef setDynamicTypeInfo(ProgramStateRef State, const MemRegion *MR,
50 ProgramStateRef setDynamicTypeInfo(ProgramStateRef State, const MemRegion *MR,
55 const MemRegion *MR,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h 374 ArrayRef<const MemRegion *> ExplicitRegions,
375 ArrayRef<const MemRegion *> Regions,
530 void VisitCXXDestructor(QualType ObjectType, const MemRegion *Dest,
626 ArrayRef<const MemRegion *> ExplicitRegions,
753 void BifurcateCall(const MemRegion *BifurReg,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h 64 const MemRegion *R = nullptr;
75 RegionOffset(const MemRegion *r, int64_t off) : R(r), Offset(off) {}
77 const MemRegion *getRegion() const { return R; }
119 const MemRegion *getBaseRegion() const;
123 const MemRegion *getMostDerivedObjectRegion() const;
127 virtual bool isSubRegionOf(const MemRegion *R) const;
129 const MemRegion *StripCasts(bool StripBaseAndDerivedCasts = true) const;
199 class MemSpaceRegion : public MemRegion {
215 static bool classof(const MemRegion *R) {
232 static bool classof(const MemRegion *R) {
246 static bool classof(const MemRegion *R) {
274 static bool classof(const MemRegion *R) {
295 static bool classof(const MemRegion *R) {
313 static bool classof(const MemRegion *R) {
332 static bool classof(const MemRegion *R) {
349 static bool classof(const MemRegion *R) {
363 static bool classof(const MemRegion *R) {
377 static bool classof(const MemRegion *R) {
399 static bool classof(const MemRegion *R) {
414 static bool classof(const MemRegion *R) {
429 static bool classof(const MemRegion *R) {
436 class SubRegion : public MemRegion {
440 const MemRegion* superRegion;
442 SubRegion(const MemRegion *sReg, Kind k) : MemRegion(k), superRegion(sReg) {
448 const MemRegion* getSuperRegion() const {
459 bool isSubRegionOf(const MemRegion* R) const override;
461 static bool classof(const MemRegion* R) {
487 unsigned Cnt, const MemRegion *superRegion);
500 static bool classof(const MemRegion* R) {
510 TypedRegion(const MemRegion *sReg, Kind k) : SubRegion(sReg, k) {
523 static bool classof(const MemRegion* R) {
534 TypedValueRegion(const MemRegion* sReg, Kind k) : TypedRegion(sReg, k) {
557 static bool classof(const MemRegion* R) {
574 static bool classof(const MemRegion* R) {
592 const MemRegion*);
617 static bool classof(const MemRegion* R) {
645 const MemRegion*);
662 static bool classof(const MemRegion* R) {
695 const MemRegion *);
705 const MemRegion * const *R;
706 const MemRegion * const *OriginalR;
709 explicit referenced_vars_iterator(const MemRegion * const *r,
710 const MemRegion * const *originalR)
749 static bool classof(const MemRegion* R) {
791 const MemRegion* superRegion);
795 static bool classof(const MemRegion* R) {
813 const MemRegion *superRegion);
830 static bool classof(const MemRegion* R) {
849 const MemRegion *superRegion);
864 static bool classof(const MemRegion* R) {
887 const MemRegion* superRegion);
900 static bool classof(const MemRegion* R) {
909 DeclRegion(const ValueDecl *d, const MemRegion *sReg, Kind k)
916 const MemRegion* superRegion, Kind k);
922 static bool classof(const MemRegion* R) {
932 VarRegion(const VarDecl *vd, const MemRegion *sReg)
943 const MemRegion *superRegion) {
965 static bool classof(const MemRegion* R) {
986 const MemRegion *sReg);
997 static bool classof(const MemRegion* R) {
1012 const MemRegion* superRegion) {
1033 static bool classof(const MemRegion* R) {
1044 const MemRegion* superRegion);
1055 static bool classof(const MemRegion* R) {
1067 const MemRegion *Region;
1070 RegionRawOffset(const MemRegion* reg, CharUnits offset = CharUnits::Zero())
1076 const MemRegion *getRegion() const { return Region; }
1100 SVal Idx, const MemRegion* superRegion);
1116 static bool classof(const MemRegion* R) {
1135 Expr const *E, const MemRegion *sReg);
1146 static bool classof(const MemRegion* R) {
1165 bool IsVirtual, const MemRegion *SReg);
1181 static bool classof(const MemRegion *region) {
1207 const MemRegion *SReg);
1222 static bool classof(const MemRegion *region) {
1228 const RegionTy* MemRegion::getAs() const {
1229 if (const auto *RT = dyn_cast<RegionTy>(this))
1229 if (const auto *RT = dyn_cast<RegionTy>(this))
1247 llvm::FoldingSet<MemRegion> Regions;
1285 MemRegion::Kind K = MemRegion::GlobalInternalSpaceRegionKind,
1285 MemRegion::Kind K = MemRegion::GlobalInternalSpaceRegionKind,
1329 const VarRegion *getVarRegion(const VarDecl *D, const MemRegion *superR);
1448 llvm::DenseMap<const MemRegion *, StorageTypeForKinds> MRTraitsMap;
1452 llvm::DenseMap<const MemRegion *, StorageTypeForKinds>::const_iterator;
1477 void setTrait(const MemRegion *MR, InvalidationKinds IK);
1479 bool hasTrait(const MemRegion *MR, InvalidationKinds IK) const;
1485 inline raw_ostream &operator<<(raw_ostream &os, const MemRegion *R) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h 283 invalidateRegions(ArrayRef<const MemRegion *> Regions, const Expr *E,
340 SVal getSVal(const MemRegion* R, QualType T = QualType()) const;
346 SVal getSValAsScalarOrLoc(const MemRegion *R) const;
348 using region_iterator = const MemRegion **;
780 inline SVal ProgramState::getSVal(const MemRegion* R, QualType T) const {
870 bool scan(const MemRegion *R);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h 231 const MemRegion *region,
357 Loc makeLoc(const MemRegion* region) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValVisitor.h 111 RetTy Visit(const MemRegion *R) {
129 RetTy VisitMemRegion(const MemRegion *R) { return RetTy(); }
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h 191 const MemRegion *getAsRegion() const;
600 explicit MemRegionVal(const MemRegion* r) : Loc(MemRegionValKind, r) {
605 const MemRegion *getRegion() const {
610 const MemRegion* stripCasts(bool StripBaseCasts = true) const;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h 86 virtual Optional<SVal> getDefaultBinding(Store store, const MemRegion *R) = 0;
112 virtual StoreRef BindDefaultInitial(Store store, const MemRegion *R,
117 virtual StoreRef BindDefaultZero(Store store, const MemRegion *R) = 0;
154 const MemRegion *region,
192 const MemRegion *castRegion(const MemRegion *region, QualType CastToTy);
192 const MemRegion *castRegion(const MemRegion *region, QualType CastToTy);
198 const MemRegion *region) const = 0;
209 using InvalidatedRegions = SmallVector<const MemRegion *, 8>;
253 virtual bool scanReachableSymbols(Store S, const MemRegion *R,
265 const MemRegion *region, SVal val) = 0;
270 const MemRegion* Binding = nullptr;
278 bool HandleBinding(StoreManager& SMgr, Store store, const MemRegion* R,
280 const MemRegion *getRegion() { return Binding; }
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h 138 ArrayRef<const MemRegion *> ExplicitRegions,
139 ArrayRef<const MemRegion *> Regions,
146 const MemRegion* MR,
157 ArrayRef<const MemRegion *> ExplicitRegions,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h 101 virtual const MemRegion *getOriginRegion() const { return nullptr; }
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h 63 const MemRegion *getOriginRegion() const override { return getRegion(); }
145 const MemRegion *getOriginRegion() const override { return getRegion(); }
202 const MemRegion* R;
210 SymbolMetadata(SymbolID sym, const MemRegion* r, const Stmt *s, QualType t,
221 const MemRegion *getRegion() const { return R; }
231 static void Profile(llvm::FoldingSetNodeID& profile, const MemRegion *R,
508 const SymbolMetadata *getMetadataSymbol(const MemRegion *R, const Stmt *S,
556 using RegionSetTy = llvm::DenseSet<const MemRegion *>;
567 llvm::DenseMap<const MemRegion *, unsigned> includedRegionCache;
584 bool isLiveRegion(const MemRegion *region);
617 void markLive(const MemRegion *region);
618 void markElementIndicesLive(const MemRegion *region);
643 virtual bool VisitMemRegion(const MemRegion *) { return true; }
tools/clang/lib/StaticAnalyzer/Checkers/AllocationState.h 31 const MemRegion *getContainerObjRegion(ProgramStateRef State, SymbolRef Sym);
tools/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp 161 ArrayRef<const MemRegion *> ExplicitRegions,
162 ArrayRef<const MemRegion *> Regions,
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp 38 const MemRegion *R = l.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp 71 const MemRegion *region) {
73 if (SR->getKind() == MemRegion::UnknownSpaceRegionKind)
311 const MemRegion *region = location.getAsRegion();
324 case MemRegion::ElementRegionKind: {
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp 69 ArrayRef<const MemRegion *> ExplicitRegions,
70 ArrayRef<const MemRegion *> Regions,
166 const MemRegion *MR,
171 const MemRegion *MR,
191 const MemRegion *MR);
319 const MemRegion *R = l.getAsRegion();
714 const MemRegion *MR,
721 case MemRegion::StringRegionKind:
726 case MemRegion::SymbolicRegionKind:
727 case MemRegion::AllocaRegionKind:
728 case MemRegion::VarRegionKind:
729 case MemRegion::FieldRegionKind:
730 case MemRegion::ObjCIvarRegionKind:
734 case MemRegion::ElementRegionKind:
756 const MemRegion *MR,
795 const MemRegion *MR = Buf.getAsRegion();
823 case MemRegion::StringRegionKind: {
831 case MemRegion::SymbolicRegionKind:
832 case MemRegion::AllocaRegionKind:
833 case MemRegion::VarRegionKind:
834 case MemRegion::FieldRegionKind:
835 case MemRegion::ObjCIvarRegionKind:
837 case MemRegion::CompoundLiteralRegionKind:
840 case MemRegion::ElementRegionKind:
870 const MemRegion *bufRegion = val.getAsRegion();
925 const MemRegion *R = BufEnd.getAsRegion();
965 const MemRegion *R = MR->getRegion()->StripCasts();
987 const MemRegion::Kind& K = R->getKind();
988 if (K == MemRegion::FieldRegionKind)
1010 const MemRegion *MR) {
1014 case MemRegion::FunctionCodeRegionKind: {
1022 case MemRegion::BlockCodeRegionKind:
1025 case MemRegion::BlockDataRegionKind:
1028 case MemRegion::CXXThisRegionKind:
1029 case MemRegion::CXXTempObjectRegionKind:
1032 case MemRegion::VarRegionKind:
1035 case MemRegion::FieldRegionKind:
1038 case MemRegion::ObjCIvarRegionKind:
1051 const MemRegion *MR = MemVal.getAsRegion();
1060 const MemRegion *BR = Offset.getRegion();
2295 const MemRegion *MR = VarLoc.getAsRegion();
2313 ArrayRef<const MemRegion *> ExplicitRegions,
2314 ArrayRef<const MemRegion *> Regions,
2321 llvm::SmallPtrSet<const MemRegion *, 8> Invalidated;
2322 llvm::SmallPtrSet<const MemRegion *, 32> SuperRegions;
2325 for (ArrayRef<const MemRegion *>::iterator
2327 const MemRegion *MR = *I;
2342 const MemRegion *MR = I.getKey();
2351 const MemRegion *Super = MR;
tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp 172 if (const MemRegion *SValMemRegion = V.getAsRegion()) {
tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp 103 const MemRegion *R = C.getSVal(E).getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp 184 const MemRegion *MR = DV.getAsRegion();
230 const MemRegion *MR = DV.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp 494 const MemRegion *SelfRegion = SelfVal.castAs<loc::MemRegionVal>().getRegion();
tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp 275 ArrayRef<const MemRegion *> ExplicitRegions,
276 ArrayRef<const MemRegion *> Regions,
tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp 101 if (const MemRegion *R = ArgVal.getAsRegion()) {
tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp 64 const MemRegion *MR = C.getSVal(DeletedObj).getAsRegion();
127 const MemRegion *M = N->getSVal(CastE).getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp 252 const MemRegion *MR = L.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypeChecker.cpp 42 DynamicTypeBugVisitor(const MemRegion *Reg) : Reg(Reg) {}
56 const MemRegion *Reg;
60 const MemRegion *Reg, const Stmt *ReportedNode,
70 const MemRegion *Reg,
160 const MemRegion *Region = C.getSVal(CE).getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp 131 static void recordFixedType(const MemRegion *Region, const CXXMethodDecl *MD,
162 if (const MemRegion *Target = Ctor->getCXXThisVal().getAsRegion())
175 const MemRegion *Target = Dtor->getCXXThisVal().getAsRegion();
194 const MemRegion *RetReg = Call.getReturnValue().getAsRegion();
224 const MemRegion *RecReg = Msg->getReceiverSVal().getAsRegion();
249 if (const MemRegion *Target = Ctor->getCXXThisVal().getAsRegion()) {
278 const MemRegion *ToR = C.getSVal(CE).getAsRegion();
298 const MemRegion *MR = C.getSVal(NewE).getAsRegion();
346 const MemRegion *ToR = C.getSVal(CastE).getAsRegion();
872 const MemRegion *RetRegion = M.getReturnValue().getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp 667 const MemRegion *MemReg = Val.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp 96 const MemRegion *ObjRegion,
135 const MemRegion *MR,
267 const MemRegion *getContainerObjRegion(ProgramStateRef State, SymbolRef Sym) {
291 const MemRegion *ObjRegion =
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp 89 const MemRegion *Cont;
97 IteratorPosition(const MemRegion *C, bool V, SymbolRef Of)
101 const MemRegion *getContainer() const { return Cont; }
109 static IteratorPosition getPosition(const MemRegion *C, SymbolRef Of) {
117 IteratorPosition reAssign(const MemRegion *NewCont) const {
202 const MemRegion *Cont) const;
223 const MemRegion *Cont) const;
235 const MemRegion *Reg, CheckerContext &C,
297 bool hasSubscriptOperator(ProgramStateRef State, const MemRegion *Reg);
298 bool frontModifiable(ProgramStateRef State, const MemRegion *Reg);
299 bool backModifiable(ProgramStateRef State, const MemRegion *Reg);
300 SymbolRef getContainerBegin(ProgramStateRef State, const MemRegion *Cont);
301 SymbolRef getContainerEnd(ProgramStateRef State, const MemRegion *Cont);
303 const MemRegion *Cont, const Expr *E,
306 ProgramStateRef createContainerEnd(ProgramStateRef State, const MemRegion *Cont,
318 const MemRegion *Cont);
321 const MemRegion *Cont, SymbolRef Offset,
332 const MemRegion *Cont,
333 const MemRegion *NewCont);
335 const MemRegion *Cont,
336 const MemRegion *NewCont,
345 const MemRegion *Cont);
346 ProgramStateRef setContainerData(ProgramStateRef State, const MemRegion *Cont,
348 bool hasLiveIterators(ProgramStateRef State, const MemRegion *Cont);
350 const MemRegion *Reg);
455 const auto *ContReg = InstCall->getCXXThisVal().getAsRegion();
862 const MemRegion *Cont = nullptr;
1065 const MemRegion *Cont) const {
1079 const auto *IterCont = Pos->getContainer();
1108 const auto *IterCont1 = Pos1->getContainer();
1123 const auto *IterCont2 = Pos2->getContainer();
1140 const auto *ContReg = Cont.getAsRegion();
1162 const auto *ContReg = Cont.getAsRegion();
1184 const MemRegion *Cont) const {
1199 const auto *ContReg = Cont.getAsRegion();
1216 const auto *OldContReg = OldCont.getAsRegion();
1274 const auto *ContReg = Cont.getAsRegion();
1301 const auto *ContReg = Cont.getAsRegion();
1338 const auto *ContReg = Cont.getAsRegion();
1376 const auto *ContReg = Cont.getAsRegion();
1409 const auto *ContReg = Cont.getAsRegion();
1449 const auto *Cont = Pos->getContainer();
1475 const auto *Cont = Pos->getContainer();
1506 const auto *Cont = Pos1->getContainer();
1611 const SVal &Val, const MemRegion *Reg,
1640 const MemRegion *Reg);
1866 bool hasSubscriptOperator(ProgramStateRef State, const MemRegion *Reg) {
1882 bool frontModifiable(ProgramStateRef State, const MemRegion *Reg) {
1897 bool backModifiable(ProgramStateRef State, const MemRegion *Reg) {
1913 const MemRegion *Reg) {
1926 SymbolRef getContainerBegin(ProgramStateRef State, const MemRegion *Cont) {
1934 SymbolRef getContainerEnd(ProgramStateRef State, const MemRegion *Cont) {
1943 const MemRegion *Cont, const Expr *E,
1965 ProgramStateRef createContainerEnd(ProgramStateRef State, const MemRegion *Cont,
1989 const MemRegion *Cont) {
1993 ProgramStateRef setContainerData(ProgramStateRef State, const MemRegion *Cont,
2068 bool hasLiveIterators(ProgramStateRef State, const MemRegion *Cont) {
2085 const MemRegion *Reg) {
2170 const MemRegion *Cont) {
2182 const MemRegion *Cont, SymbolRef Offset,
2222 const MemRegion *Cont,
2223 const MemRegion *NewCont) {
2234 const MemRegion *Cont,
2235 const MemRegion *NewCont,
2291 const auto *Cont = Pos.getContainer();
2307 const auto *Cont = Pos.getContainer();
2323 const auto *Cont = Pos.getContainer();
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp 117 const MemRegion *NonLocalizedString;
121 NonLocalizedStringBRVisitor(const MemRegion *NonLocalizedString)
673 const MemRegion *mt = S.getAsRegion();
686 const MemRegion *mt = S.getAsRegion();
698 const MemRegion *mt = S.getAsRegion();
709 const MemRegion *mt = S.getAsRegion();
773 const MemRegion *StringRegion = S.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/MIGChecker.cpp 129 while (const MemRegion *MR = Sym->getOriginRegion()) {
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.cpp 25 const MemRegion *const RequestRegion,
50 const ento::mpi::Request &Req, const MemRegion *const RequestRegion,
70 const CallEvent &CE, const clang::ento::MemRegion *const RequestRegion,
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIBugReporter.h 44 const MemRegion *const RequestRegion,
55 const MemRegion *const RequestRegion,
66 const MemRegion *const RequestRegion,
82 RequestNodeVisitor(const MemRegion *const MemoryRegion,
97 const MemRegion *const RequestRegion;
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp 29 const MemRegion *const MR =
60 const MemRegion *const MR = topRegionUsedByWait(PreCallEvent);
69 llvm::SmallVector<const MemRegion *, 2> ReqRegions;
134 const MemRegion *MPIChecker::topRegionUsedByWait(const CallEvent &CE) const {
146 llvm::SmallVector<const MemRegion *, 2> &ReqRegions,
147 const MemRegion *const MR, const CallEvent &CE, CheckerContext &Ctx) const {
175 ReqRegions.push_back(ER->getAs<MemRegion>());
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.h 85 llvm::SmallVector<const clang::ento::MemRegion *, 2> &ReqRegions,
86 const clang::ento::MemRegion *const MR, const clang::ento::CallEvent &CE,
93 const clang::ento::MemRegion *
tools/clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPITypes.h 49 typedef llvm::ImmutableMap<const clang::ento::MemRegion *,
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp 199 static bool isBadDeallocationArgument(const MemRegion *Arg) {
tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp 35 static const ObjCIvarRegion *getParentIvarRegion(const MemRegion *R);
54 MacOSXAPIChecker::getParentIvarRegion(const MemRegion *R) {
71 const MemRegion *R = C.getSVal(CE->getArg(0)).getAsRegion();
76 const MemRegion *RB = R->getBaseRegion();
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp 354 using LeakInfo = std::pair<const ExplodedNode *, const MemRegion *>;
632 static bool SummarizeRegion(raw_ostream &os, const MemRegion *MR);
1777 const MemRegion *R = ArgVal.getAsRegion();
1972 const MemRegion *MR) {
1974 case MemRegion::FunctionCodeRegionKind: {
1982 case MemRegion::BlockCodeRegionKind:
1985 case MemRegion::BlockDataRegionKind:
2066 const MemRegion *MR = ArgVal.getAsRegion();
2201 const MemRegion *MR = ArgVal.getAsRegion();
2374 const MemRegion *MR = ArgVal.getAsRegion();
2519 const MemRegion *ReferenceRegion = nullptr;
2529 if (const MemRegion *MR = C.getLocationRegionIfPostStore(N)) {
2591 const MemRegion *Region = nullptr;
2752 if (const MemRegion *MR = RetVal.getAsRegion())
2784 SmallVector<const MemRegion*, 10> Regions;
3234 const MemRegion *ObjRegion =
tools/clang/lib/StaticAnalyzer/Checkers/Move.h 24 bool isMovedFrom(ProgramStateRef State, const MemRegion *Region);
tools/clang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp 58 ArrayRef<const MemRegion *> RequestedRegions,
59 ArrayRef<const MemRegion *> InvalidatedRegions,
147 ObjectKind classifyObject(const MemRegion *MR, const CXXRecordDecl *RD) const;
151 void explainObject(llvm::raw_ostream &OS, const MemRegion *MR,
158 MovedBugVisitor(const MoveChecker &Chk, const MemRegion *R,
179 const MemRegion *Region;
210 void modelUse(ProgramStateRef State, const MemRegion *Region,
216 ExplodedNode *reportBug(const MemRegion *Region, const CXXRecordDecl *RD,
223 const MemRegion *Region,
234 bool isMovedFrom(ProgramStateRef State, const MemRegion *Region) {
244 const MemRegion *Region) {
255 const MemRegion *Region) {
263 static const MemRegion *unwrapRValueReferenceIndirection(const MemRegion *MR) {
263 static const MemRegion *unwrapRValueReferenceIndirection(const MemRegion *MR) {
267 if (const MemRegion *OriginMR = Sym->getOriginRegion())
333 const MemRegion *Region,
349 void MoveChecker::modelUse(ProgramStateRef State, const MemRegion *Region,
390 ExplodedNode *MoveChecker::reportBug(const MemRegion *Region,
476 const MemRegion *BaseRegion = ArgRegion->getBaseRegion();
554 MoveChecker::classifyObject(const MemRegion *MR,
575 void MoveChecker::explainObject(llvm::raw_ostream &OS, const MemRegion *MR,
614 const MemRegion *ArgRegion = CC->getArgSVal(0).getAsRegion();
630 const MemRegion *ThisRegion = IC->getCXXThisVal().getAsRegion();
665 const MemRegion *ArgRegion = IC->getArgSVal(0).getAsRegion();
689 const MemRegion *Region = E.first;
702 ArrayRef<const MemRegion *> RequestedRegions,
703 ArrayRef<const MemRegion *> InvalidatedRegions,
711 const MemRegion *ThisRegion = nullptr;
718 for (const auto *Region : RequestedRegions) {
729 for (const auto *Region : InvalidatedRegions)
tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp 190 const MemRegion* R = X->getRegion();
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp 132 NullabilityBugVisitor(const MemRegion *M) : Region(M) {}
146 const MemRegion *Region;
155 ExplodedNode *N, const MemRegion *Region,
161 const MemRegion *Region, BugReporter &BR,
281 const MemRegion *Region = RegionSVal->getRegion();
434 ErrorKind Error, ExplodedNode *N, const MemRegion *Region,
478 const MemRegion *Region =
604 const MemRegion *Region = getTrackRegion(*RetSVal);
696 const MemRegion *Region = getTrackRegion(*ArgSVal);
760 const MemRegion *Region = getTrackRegion(Call.getReturnValue());
802 const MemRegion *SelfRegion = ValueRegionSVal->getRegion();
829 const MemRegion *ReturnRegion = getTrackRegion(M.getReturnValue());
952 const MemRegion *Region = getTrackRegion(*RegionSVal);
1127 const MemRegion *ValueRegion = getTrackRegion(*ValDefOrUnknown);
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp 140 const MemRegion *R = L.getAsRegion();
146 const MemRegion *PriorSubRegion = nullptr;
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp 50 const MemRegion *getArrayRegion(const MemRegion *Region, bool &Polymorphic,
50 const MemRegion *getArrayRegion(const MemRegion *Region, bool &Polymorphic,
52 const MemRegion *getPointedRegion(const MemRegion *Region,
52 const MemRegion *getPointedRegion(const MemRegion *Region,
104 const MemRegion *
105 PointerArithChecker::getPointedRegion(const MemRegion *Region,
117 const MemRegion *PointerArithChecker::getArrayRegion(const MemRegion *Region,
117 const MemRegion *PointerArithChecker::getArrayRegion(const MemRegion *Region,
156 const MemRegion *Region = C.getSVal(E).getAsRegion();
166 if (const MemRegion *ArrayRegion =
190 Region->getKind() == MemRegion::Kind::SymbolicRegionKind)
229 const MemRegion *Region = SV.getAsRegion();
250 const MemRegion *Region = AllocedVal.getAsRegion();
266 const MemRegion *Region = CastedVal.getAsRegion();
284 const MemRegion *Region = CastedVal.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp 44 const MemRegion *LR = LV.getAsRegion();
45 const MemRegion *RR = RV.getAsRegion();
50 const MemRegion *BaseLR = LR->getBaseRegion();
51 const MemRegion *BaseRR = RR->getBaseRegion();
tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp 95 const MemRegion *lockR,
159 ProgramStateRef state, const MemRegion *lockR, const SymbolRef *sym) const {
220 const MemRegion *lockR = lock.getAsRegion();
291 const MemRegion *lockR = lock.getAsRegion();
324 const MemRegion *firstLockR = LS.getHead();
350 const MemRegion *LockR = Lock.getAsRegion();
411 const MemRegion *LockR = Lock.getAsRegion();
473 const MemRegion *lockR = I->first;
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp 166 SmallVector<const MemRegion*, 10> Regions;
488 static bool isSmartPtrField(const MemRegion *MR) {
505 static bool shouldEscapeRegion(const MemRegion *R) {
1140 const MemRegion *MR = loc.getAsRegion();
1185 ArrayRef<const MemRegion *> ExplicitRegions,
1186 ArrayRef<const MemRegion *> Regions, const LocationContext *LCtx,
1193 for (const MemRegion *I : ExplicitRegions)
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.h 321 ArrayRef<const MemRegion *> ExplicitRegions,
322 ArrayRef<const MemRegion *> Regions,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp 177 if (const MemRegion *MR = (*CE)->getArgSVal(Idx).getAsRegion())
606 static Optional<std::string> describeRegion(const MemRegion *MR) {
622 const MemRegion *R;
625 const MemRegion *InR,
635 const MemRegion *FirstBinding = nullptr;
653 const MemRegion *R = FB.getRegion();
738 const MemRegion* FirstBinding = AllocI.R;
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.h 78 const MemRegion* AllocBinding;
tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp 43 const MemRegion *R = V.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp 51 const MemRegion *ThisR =
tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp 56 void EmitStackError(CheckerContext &C, const MemRegion *R,
59 static SourceRange genName(raw_ostream &os, const MemRegion *R,
61 static SmallVector<const MemRegion *, 4>
63 static bool isArcManagedBlock(const MemRegion *R, CheckerContext &C);
64 static bool isNotInCurrentFrame(const MemRegion *R, CheckerContext &C);
68 SourceRange StackAddrEscapeChecker::genName(raw_ostream &os, const MemRegion *R,
112 bool StackAddrEscapeChecker::isArcManagedBlock(const MemRegion *R,
119 bool StackAddrEscapeChecker::isNotInCurrentFrame(const MemRegion *R,
136 SmallVector<const MemRegion *, 4>
139 SmallVector<const MemRegion *, 4> Regions;
144 const MemRegion *Region = Val.getAsRegion();
152 const MemRegion *R,
184 for (const MemRegion *Region : getCapturedStackRegions(B, C)) {
213 for (const MemRegion *Region : getCapturedStackRegions(B, C)) {
259 const MemRegion *R = V.getAsRegion();
305 SmallVector<std::pair<const MemRegion *, const MemRegion *>, 10> V;
305 SmallVector<std::pair<const MemRegion *, const MemRegion *>, 10> V;
309 bool HandleBinding(StoreManager &SMgr, Store S, const MemRegion *Region,
314 const MemRegion *VR = Val.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/Taint.cpp 74 const MemRegion *R = V.getAsRegion();
78 ProgramStateRef taint::addTaint(ProgramStateRef State, const MemRegion *R,
129 if (const MemRegion *Reg = V.getAsRegion())
134 bool taint::isTainted(ProgramStateRef State, const MemRegion *Reg,
tools/clang/lib/StaticAnalyzer/Checkers/Taint.h 47 addTaint(ProgramStateRef State, const MemRegion *R,
74 bool isTainted(ProgramStateRef State, const MemRegion *Reg,
tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp 47 const MemRegion *MR = Loc.castAs<loc::MemRegionVal>().getRegion();
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h 319 const MemRegion *PointeeR = nullptr);
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp 219 for (const MemRegion *R : State->get<AnalyzedRegions>()) {
243 const MemRegion *PointeeR) {
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedPointee.cpp 246 while (const MemRegion *Tmp = State->getSVal(R, DynT).getAsRegion()) {
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp 285 const MemRegion *R = C.getSVal(CE->getArg(0)).getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp 27 typedef SmallVector<const MemRegion *, 2> RegionVector;
56 const MemRegion *getVAListAsRegion(SVal SV, const Expr *VAExpr,
59 const MemRegion *Reg) const;
61 void reportUninitializedAccess(const MemRegion *VAList, StringRef Msg,
73 ValistBugVisitor(const MemRegion *Reg, bool IsLeak = false)
96 const MemRegion *Reg;
140 const MemRegion *VAList =
163 const MemRegion *ValistChecker::getVAListAsRegion(SVal SV, const Expr *E,
166 const MemRegion *Reg = SV.getAsRegion();
192 const MemRegion *VAList =
225 const MemRegion *Reg) const {
248 void ValistChecker::reportUninitializedAccess(const MemRegion *VAList,
311 const MemRegion *VAList =
319 const MemRegion *Arg2 =
358 const MemRegion *VAList =
tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp 168 const MemRegion *LhsDeclReg =
197 const MemRegion *VforkLhs =
199 const MemRegion *MR = L.getAsRegion();
tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp 113 const MemRegion *Reg = MC->getCXXThisVal().getAsRegion();
178 const MemRegion *Reg = ThiSVal.getAsRegion();
192 const MemRegion *Reg = ThiSVal.getAsRegion();
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp 2215 void PathSensitiveBugReport::markInteresting(const MemRegion *R,
2277 PathSensitiveBugReport::getInterestingnessKind(const MemRegion *R) const {
2299 bool PathSensitiveBugReport::isInteresting(const MemRegion *R) const {
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp 357 using RegionVector = SmallVector<const MemRegion *, 5>;
420 const MemRegion *MatchedRegion,
518 const MemRegion *VR = V.getAsRegion();
564 const MemRegion *SelfRegion = MC->getReceiverSVal().getAsRegion();
574 const MemRegion *ThisR = CCall->getCXXThisVal().getAsRegion();
594 while (const MemRegion *MR = V.getAsRegion()) {
710 const MemRegion *MatchedRegion,
722 const MemRegion *R = RegionOfInterest;
731 for (const MemRegion *R : RegionSequence) {
830 const ExplodedNode *N, const MemRegion *R,
866 const MemRegion *R = N->getSVal(BO->getLHS()).getAsRegion();
1097 if (const MemRegion *MR = LValue->getAsRegion()) {
1245 const MemRegion *R, SVal V, const DeclStmt *DS) {
1317 const MemRegion *R, SVal V) {
1383 const MemRegion *FieldReg = (const MemRegion *)PIP->getLocationValue();
1834 static const MemRegion *getLocationRegionIfReference(const Expr *E,
1976 const MemRegion *RR = getLocationRegionIfReference(Inner, LVNode);
1991 const MemRegion *R = (RR && LVIsNull) ? RR :
2066 const MemRegion *RegionRVal = RVal.getAsRegion();
2353 if (const MemRegion *R = state->getLValue(cast<VarDecl>(DR->getDecl()),
2780 const MemRegion *ArgReg = Call->getArgSVal(Idx).getAsRegion();
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp 309 if (const MemRegion *MR = getArgSVal(Idx).getAsRegion())
703 const MemRegion *ThisRegion = ThisVal.getAsRegion();
735 const MemRegion *R = getCXXThisVal().getAsRegion();
849 const MemRegion *DataReg = getSVal(Callee).getAsRegion();
864 if (const MemRegion *R = getBlockRegion())
953 if (const MemRegion *IvarRegion = IvarLVal.getAsRegion()) {
1199 const MemRegion *Receiver = nullptr;
tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp 598 ArrayRef<const MemRegion *> ExplicitRegions,
599 ArrayRef<const MemRegion *> Regions,
tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp 27 const MemRegion *R =
tools/clang/lib/StaticAnalyzer/Core/DynamicType.cpp 40 DynamicTypeInfo getDynamicTypeInfo(ProgramStateRef State, const MemRegion *MR) {
60 const MemRegion *MR) {
65 const MemRegion *MR,
79 ProgramStateRef setDynamicTypeInfo(ProgramStateRef State, const MemRegion *MR,
86 ProgramStateRef setDynamicTypeInfo(ProgramStateRef State, const MemRegion *MR,
92 const MemRegion *MR,
153 const MemRegion *MR = I->first;
189 const MemRegion *MR = I->first;
tools/clang/lib/StaticAnalyzer/Core/Environment.cpp 154 bool VisitMemRegion(const MemRegion *R) override {
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp 253 const MemRegion *R = state->getRegion(PD, InitLoc);
279 const MemRegion *R = state->getRegion(SelfD, InitLoc);
545 ArrayRef<const MemRegion *> Explicits,
546 ArrayRef<const MemRegion *> Regions,
722 if (const MemRegion *MR = I.second.getAsRegion())
958 const MemRegion *Region = dest.castAs<loc::MemRegionVal>().getRegion();
961 const MemRegion *ValueRegion = state->getSVal(Region).getAsRegion();
1008 const MemRegion *ArgR = ArgVal.getAsRegion();
1074 const MemRegion *MR = nullptr;
2465 if (const MemRegion *R = V.getAsRegion())
2622 if (const MemRegion *R = L.getAsRegion())
2690 const MemRegion *MR = Loc.getAsRegion();
2717 ArrayRef<const MemRegion *> ExplicitRegions,
2797 const MemRegion *LocReg = nullptr;
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp 563 const MemRegion *Target = Call->getCXXThisVal().getAsRegion();
602 const MemRegion *Dest,
879 const MemRegion *R =
894 const MemRegion *R = svalBuilder.getRegionManager().getCXXTempObjectRegion(
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp 636 const MemRegion *TargetR = Target.getAsRegion();
1054 void ExprEngine::BifurcateCall(const MemRegion *BifurReg,
tools/clang/lib/StaticAnalyzer/Core/LoopWidening.cpp 60 const MemRegion *Regions[] = {MRMgr.getStackLocalsRegion(STC),
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp 67 const SuperTy *superRegion) {
132 bool SubRegion::isSubRegionOf(const MemRegion* R) const {
133 const MemRegion* r = this;
148 const MemRegion *superRegion = r->getSuperRegion();
251 const MemRegion *superRegion) {
259 const MemRegion *superRegion) {
267 const MemRegion *superRegion) {
284 const MemRegion* superRegion) {
292 const MemRegion *sRegion) {
304 const MemRegion* superRegion) {
309 const MemRegion* superRegion, Kind k) {
324 const MemRegion *sreg) {
325 ID.AddInteger(static_cast<unsigned>(MemRegion::SymbolicRegionKind));
336 const MemRegion* superRegion) {
337 ID.AddInteger(MemRegion::ElementRegionKind);
349 const MemRegion*) {
350 ID.AddInteger(MemRegion::FunctionCodeRegionKind);
361 const MemRegion*) {
362 ID.AddInteger(MemRegion::BlockCodeRegionKind);
374 const MemRegion *sReg) {
375 ID.AddInteger(MemRegion::BlockDataRegionKind);
388 const MemRegion *sReg) {
400 const MemRegion *SReg) {
412 const MemRegion *SReg) {
662 const MemRegion *R = this;
767 *MemRegionManager::getGlobalsRegion(MemRegion::Kind K,
770 if (K == MemRegion::GlobalSystemSpaceRegionKind)
772 if (K == MemRegion::GlobalImmutableSpaceRegionKind)
848 const MemRegion *sReg = nullptr;
857 sReg = getGlobalsRegion(MemRegion::GlobalSystemSpaceRegionKind);
859 sReg = getGlobalsRegion(MemRegion::GlobalImmutableSpaceRegionKind);
868 sReg = getGlobalsRegion(MemRegion::GlobalImmutableSpaceRegionKind);
900 sReg = getGlobalsRegion(MemRegion::StaticGlobalSpaceRegionKind,
919 sReg = getGlobalsRegion(MemRegion::StaticGlobalSpaceRegionKind,
933 const MemRegion *superR) {
946 sReg = getGlobalsRegion(MemRegion::GlobalImmutableSpaceRegionKind);
969 Ex, getGlobalsRegion(MemRegion::GlobalInternalSpaceRegionKind, nullptr));
998 MemRegion* data = Regions.FindNodeOrInsertPos(ID, InsertPos);
1129 const MemRegion *R = this;
1160 const MemRegion *MemRegion::getBaseRegion() const {
1161 const MemRegion *R = this;
1164 case MemRegion::ElementRegionKind:
1165 case MemRegion::FieldRegionKind:
1166 case MemRegion::ObjCIvarRegionKind:
1167 case MemRegion::CXXBaseObjectRegionKind:
1168 case MemRegion::CXXDerivedObjectRegionKind:
1181 const MemRegion *MemRegion::getMostDerivedObjectRegion() const {
1182 const MemRegion *R = this;
1188 bool MemRegion::isSubRegionOf(const MemRegion *) const {
1196 const MemRegion *MemRegion::StripCasts(bool StripBaseAndDerivedCasts) const {
1197 const MemRegion *R = this;
1233 const MemRegion *superR = nullptr;
1294 static RegionOffset calculateOffset(const MemRegion *R) {
1295 const MemRegion *SymbolicOffsetBase = nullptr;
1300 case MemRegion::CodeSpaceRegionKind:
1301 case MemRegion::StackLocalsSpaceRegionKind:
1302 case MemRegion::StackArgumentsSpaceRegionKind:
1303 case MemRegion::HeapSpaceRegionKind:
1304 case MemRegion::UnknownSpaceRegionKind:
1305 case MemRegion::StaticGlobalSpaceRegionKind:
1306 case MemRegion::GlobalInternalSpaceRegionKind:
1307 case MemRegion::GlobalSystemSpaceRegionKind:
1308 case MemRegion::GlobalImmutableSpaceRegionKind:
1313 case MemRegion::FunctionCodeRegionKind:
1314 case MemRegion::BlockCodeRegionKind:
1315 case MemRegion::BlockDataRegionKind:
1322 case MemRegion::SymbolicRegionKind:
1323 case MemRegion::AllocaRegionKind:
1324 case MemRegion::CompoundLiteralRegionKind:
1325 case MemRegion::CXXThisRegionKind:
1326 case MemRegion::StringRegionKind:
1327 case MemRegion::ObjCStringRegionKind:
1328 case MemRegion::VarRegionKind:
1329 case MemRegion::CXXTempObjectRegionKind:
1333 case MemRegion::ObjCIvarRegionKind:
1341 case MemRegion::CXXBaseObjectRegionKind: {
1393 case MemRegion::CXXDerivedObjectRegionKind: {
1398 case MemRegion::ElementRegionKind: {
1426 case MemRegion::FieldRegionKind: {
1518 using VarVec = BumpVector<const MemRegion *>;
1590 void RegionAndSymbolInvalidationTraits::setTrait(const MemRegion *MR,
1608 bool RegionAndSymbolInvalidationTraits::hasTrait(const MemRegion *MR,
tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp 126 const MemRegion *MR = LV.getAsRegion();
137 const MemRegion *R = loc.castAs<loc::MemRegionVal>().getRegion();
146 const MemRegion *R = loc.castAs<loc::MemRegionVal>().getRegion();
152 typedef ArrayRef<const MemRegion *> RegionList;
245 SVal ProgramState::getSValAsScalarOrLoc(const MemRegion *R) const {
539 const MemRegion *R = val.getRegion()->getBaseRegion();
589 bool ScanReachableSymbols::scan(const MemRegion *R) {
607 const MemRegion *Super = SR->getSuperRegion();
641 for (const MemRegion *R : Reachable) {
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp 49 llvm::PointerIntPair<const MemRegion *, 2> P;
61 explicit BindingKey(const MemRegion *r, uint64_t offset, Kind k)
74 const MemRegion *getRegion() const { return P.getPointer(); }
85 const MemRegion *getBaseRegion() const {
96 static BindingKey Make(const MemRegion *R, Kind k);
115 BindingKey BindingKey::Make(const MemRegion *R, Kind k) {
150 typedef llvm::ImmutableMap<const MemRegion *, ClusterBindings>
154 class RegionBindingsRef : public llvm::ImmutableMapRef<const MemRegion *,
170 typedef llvm::ImmutableMapRef<const MemRegion *, ClusterBindings>
198 RegionBindingsRef addBinding(const MemRegion *R,
202 const SVal *lookup(const MemRegion *R, BindingKey::Kind k) const;
207 RegionBindingsRef removeBinding(const MemRegion *R,
210 RegionBindingsRef removeBinding(const MemRegion *R) {
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 {
269 Optional<SVal> RegionBindingsRef::getDefaultBinding(const MemRegion *R) const {
274 const MemRegion *Base = K.getBaseRegion();
285 RegionBindingsRef RegionBindingsRef::addBinding(const MemRegion *R,
298 const SVal *RegionBindingsRef::lookup(const MemRegion *R,
304 const MemRegion *Base = K.getBaseRegion();
315 RegionBindingsRef RegionBindingsRef::removeBinding(const MemRegion *R,
394 const MemRegion *R, QualType T);
418 RegionBindingsRef invalidateGlobalRegion(MemRegion::Kind K,
435 bool scanReachableSymbols(Store S, const MemRegion *R,
451 StoreRef BindDefaultInitial(Store store, const MemRegion *R,
464 StoreRef BindDefaultZero(Store store, const MemRegion *R) override {
534 bool includedInBindings(Store store, const MemRegion *region) const override;
553 Optional<SVal> getDefaultBinding(Store S, const MemRegion *R) override {
595 const MemRegion *superR,
630 const MemRegion* R,
708 typedef llvm::DenseMap<const MemRegion *, const ClusterBindings *> ClusterMap;
709 typedef const MemRegion * WorkListElement;
724 const ClusterBindings *getCluster(const MemRegion *R) {
731 bool includeEntireMemorySpace(const MemRegion *Base) {
743 bool isVisited(const MemRegion *R) {
751 const MemRegion *Base = RI.getKey();
771 bool AddToWorkList(const MemRegion *R) {
778 const MemRegion *BaseR = E;
784 void VisitAddedToCluster(const MemRegion *baseR, const ClusterBindings &C) {}
785 void VisitCluster(const MemRegion *baseR, const ClusterBindings *C) {}
787 void VisitCluster(const MemRegion *BaseR, const ClusterBindings *C,
798 bool RegionStoreManager::scanReachableSymbols(Store S, const MemRegion *R,
825 const MemRegion *Base = K.getConcreteOffsetRegion();
826 const MemRegion *R = K.getRegion();
918 const MemRegion *Base = NextKey.getConcreteOffsetRegion();
950 const MemRegion *ClusterHead = TopKey.getBaseRegion();
1017 void VisitCluster(const MemRegion *baseR, const ClusterBindings *C);
1022 bool AddToWorkList(const MemRegion *R);
1026 bool includeEntireMemorySpace(const MemRegion *Base);
1030 bool isInitiallyIncludedGlobalRegion(const MemRegion *R);
1034 bool InvalidateRegionsWorker::AddToWorkList(const MemRegion *R) {
1037 const MemRegion *BaseR = doNotInvalidateSuperRegion ? R : R->getBaseRegion();
1046 if (const MemRegion *R = V.getAsRegion()) {
1066 void InvalidateRegionsWorker::VisitCluster(const MemRegion *baseR,
1127 if (const MemRegion *LR = L->getAsRegion())
1196 const MemRegion *SuperR = baseR->getBaseRegion();
1235 const MemRegion *R = V.getAsRegion();
1257 const MemRegion *R) {
1270 bool InvalidateRegionsWorker::includeEntireMemorySpace(const MemRegion *Base) {
1280 RegionStoreManager::invalidateGlobalRegion(MemRegion::Kind K,
1319 if (const MemRegion *R = (*I).getAsRegion())
1325 if (const MemRegion *R = V.getAsRegion()) {
1375 B = invalidateGlobalRegion(MemRegion::GlobalInternalSpaceRegionKind,
1379 B = invalidateGlobalRegion(MemRegion::GlobalSystemSpaceRegionKind,
1395 const MemRegion *R,
1464 const MemRegion *MR = L.castAs<loc::MemRegionVal>().getRegion();
1678 const MemRegion* superR = R->getSuperRegion();
1794 const MemRegion* superR = R->getSuperRegion();
1821 const MemRegion *superR,
1915 const MemRegion *Base = SR->getSuperRegion();
1968 const MemRegion *superR = R->getSuperRegion();
2127 const MemRegion *region) const {
2141 if (const MemRegion *R = D.getAsRegion())
2156 if (const MemRegion* R = LV->getRegion())
2171 const MemRegion *R = L.castAs<loc::MemRegionVal>().getRegion();
2206 const MemRegion *R,
2518 void VisitAddedToCluster(const MemRegion *baseR, const ClusterBindings &C);
2519 void VisitCluster(const MemRegion *baseR, const ClusterBindings *C);
2524 bool AddToWorkList(const MemRegion *R);
2531 bool RemoveDeadBindingsWorker::AddToWorkList(const MemRegion *R) {
2532 const MemRegion *BaseR = R->getBaseRegion();
2536 void RemoveDeadBindingsWorker::VisitAddedToCluster(const MemRegion *baseR,
2571 void RemoveDeadBindingsWorker::VisitCluster(const MemRegion *baseR,
2605 if (const MemRegion *R = V.getAsRegion()) {
2660 const MemRegion *Base = I.getKey();
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp 205 const MemRegion *region,
567 if (const MemRegion *R = LV->getLoc().getAsRegion()) {
607 if (const MemRegion *R = val.getAsRegion()) {
tools/clang/lib/StaticAnalyzer/Core/SVals.cpp 52 const MemRegion *R = RV->getRegion();
65 const MemRegion* R = X->getRegion();
91 const MemRegion *R = X->getRegion();
107 const MemRegion *R = X->getRegion();
151 const MemRegion *SVal::getAsRegion() const {
161 const MemRegion *loc::MemRegionVal::stripCasts(bool StripBaseCasts) const {
162 const MemRegion *R = getRegion();
tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp 32 const MemRegion *MR = LV->getAsRegion();
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp 151 const MemRegion *R = val.castAs<loc::MemRegionVal>().getRegion();
960 const MemRegion *LeftMR = lhs.getAsRegion();
963 const MemRegion *RightMR = rhs.getAsRegion();
970 const MemRegion *LeftBase = LeftMR->getBaseRegion();
971 const MemRegion *RightBase = RightMR->getBaseRegion();
1169 if (const MemRegion *region = lhs.getAsRegion()) {
1329 SVal VisitMemRegion(const MemRegion *R) { return loc::MemRegionVal(R); }
tools/clang/lib/StaticAnalyzer/Core/Store.cpp 74 const MemRegion *StoreManager::castRegion(const MemRegion *R, QualType CastToTy) {
74 const MemRegion *StoreManager::castRegion(const MemRegion *R, QualType CastToTy) {
113 case MemRegion::CXXThisRegionKind:
114 case MemRegion::CodeSpaceRegionKind:
115 case MemRegion::StackLocalsSpaceRegionKind:
116 case MemRegion::StackArgumentsSpaceRegionKind:
117 case MemRegion::HeapSpaceRegionKind:
118 case MemRegion::UnknownSpaceRegionKind:
119 case MemRegion::StaticGlobalSpaceRegionKind:
120 case MemRegion::GlobalInternalSpaceRegionKind:
121 case MemRegion::GlobalSystemSpaceRegionKind:
122 case MemRegion::GlobalImmutableSpaceRegionKind: {
126 case MemRegion::FunctionCodeRegionKind:
127 case MemRegion::BlockCodeRegionKind:
128 case MemRegion::BlockDataRegionKind:
129 case MemRegion::StringRegionKind:
131 case MemRegion::SymbolicRegionKind:
132 case MemRegion::AllocaRegionKind:
133 case MemRegion::CompoundLiteralRegionKind:
134 case MemRegion::FieldRegionKind:
135 case MemRegion::ObjCIvarRegionKind:
136 case MemRegion::ObjCStringRegionKind:
137 case MemRegion::VarRegionKind:
138 case MemRegion::CXXTempObjectRegionKind:
139 case MemRegion::CXXBaseObjectRegionKind:
140 case MemRegion::CXXDerivedObjectRegionKind:
143 case MemRegion::ElementRegionKind: {
165 const MemRegion *baseR = rawOff.getRegion();
197 const MemRegion *newSuperR = nullptr;
229 const MemRegion *MR = V.getAsRegion();
275 const MemRegion *DerivedReg = Derived.getAsRegion();
294 const MemRegion *BaseReg = MRMgr.getCXXBaseObjectRegion(
306 static const CXXRecordDecl *getCXXRecordType(const MemRegion *MR) {
318 const MemRegion *MR = Base.getAsRegion();
366 const MemRegion *Uncasted = MR->StripCasts(/*IncludeBaseCasts=*/false);
546 const MemRegion* R,
tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp 236 SymbolManager::getMetadataSymbol(const MemRegion* R, const Stmt *S, QualType T,
406 void SymbolReaper::markLive(const MemRegion *region) {
411 void SymbolReaper::markElementIndicesLive(const MemRegion *region) {
427 bool SymbolReaper::isLiveRegion(const MemRegion *MR) {
usr/include/c++/7.4.0/type_traits 1558 { typedef _Tp type; };
1983 { typedef _Up type; };