Lines Matching defs:MemRegion

1 //==- MemRegion.h - Abstract memory regions for static analysis -*- C++ -*--==//
9 // This file defines MemRegion and its subclasses. MemRegion defines a
54 class MemRegion;
64 const MemRegion *R = nullptr;
75 RegionOffset(const MemRegion *r, int64_t off) : R(r), Offset(off) {}
77 const MemRegion *getRegion() const { return R; }
93 /// MemRegion - The root abstract class for all memory regions.
94 class MemRegion : public llvm::FoldingSetNode {
107 MemRegion(Kind k) : kind(k) {}
108 virtual ~MemRegion();
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 {
203 MemSpaceRegion(MemRegionManager *mgr, Kind k) : MemRegion(k), Mgr(mgr) {
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) {
467 // MemRegion subclasses.
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 {
1236 const RegionTy* MemRegion::castAs() const {
1247 llvm::FoldingSet<MemRegion> Regions;
1285 MemRegion::Kind K = MemRegion::GlobalInternalSpaceRegionKind,
1329 const VarRegion *getVarRegion(const VarDecl *D, const MemRegion *superR);
1436 inline ASTContext &MemRegion::getContext() const {
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) {