Lines Matching defs:MemRegion

1 //== MemRegion.h - Abstract memory regions for static analysis --*- C++ -*--==//
10 // This file defines MemRegion and its subclasses. MemRegion defines a
47 const MemRegion *R;
58 RegionOffset(const MemRegion *r, int64_t off) : R(r), Offset(off) {}
60 const MemRegion *getRegion() const { return R; }
76 /// MemRegion - The root abstract class for all memory regions.
77 class MemRegion : public llvm::FoldingSetNode {
127 MemRegion(Kind k) : kind(k) {}
128 virtual ~MemRegion();
139 const MemRegion *getBaseRegion() const;
142 virtual bool isSubRegionOf(const MemRegion *R) const;
144 const MemRegion *StripCasts(bool StripBaseCasts = true) const;
193 class MemSpaceRegion : public MemRegion {
200 : MemRegion(k), Mgr(mgr) {
211 static bool classof(const MemRegion *R) {
223 static bool classof(const MemRegion *R) {
249 static bool classof(const MemRegion *R) {
269 static bool classof(const MemRegion *R) {
288 static bool classof(const MemRegion *R) {
308 static bool classof(const MemRegion *R) {
326 static bool classof(const MemRegion *R) {
341 static bool classof(const MemRegion *R) {
355 static bool classof(const MemRegion *R) {
375 static bool classof(const MemRegion *R) {
391 static bool classof(const MemRegion *R) {
406 static bool classof(const MemRegion *R) {
414 class SubRegion : public MemRegion {
418 const MemRegion* superRegion;
419 SubRegion(const MemRegion* sReg, Kind k) : MemRegion(k), superRegion(sReg) {}
421 const MemRegion* getSuperRegion() const {
432 bool isSubRegionOf(const MemRegion* R) const override;
434 static bool classof(const MemRegion* R) {
440 // MemRegion subclasses.
452 AllocaRegion(const Expr *ex, unsigned cnt, const MemRegion *superRegion)
466 unsigned Cnt, const MemRegion *superRegion);
470 static bool classof(const MemRegion* R) {
480 TypedRegion(const MemRegion* sReg, Kind k) : SubRegion(sReg, k) {}
491 static bool classof(const MemRegion* R) {
502 TypedValueRegion(const MemRegion* sReg, Kind k) : TypedRegion(sReg, k) {}
523 static bool classof(const MemRegion* R) {
534 CodeTextRegion(const MemRegion *sreg, Kind k) : TypedRegion(sreg, k) {}
538 static bool classof(const MemRegion* R) {
548 FunctionTextRegion(const NamedDecl *fd, const MemRegion* sreg)
576 const MemRegion*);
578 static bool classof(const MemRegion* R) {
598 AnalysisDeclContext *ac, const MemRegion* sreg)
618 const MemRegion*);
620 static bool classof(const MemRegion* R) {
640 unsigned count, const MemRegion *sreg)
653 const MemRegion * const *R;
654 const MemRegion * const *OriginalR;
656 explicit referenced_vars_iterator(const MemRegion * const *r,
657 const MemRegion * const *originalR)
695 const MemRegion *);
697 static bool classof(const MemRegion* R) {
716 SymbolicRegion(const SymbolRef s, const MemRegion* sreg)
731 const MemRegion* superRegion);
735 static bool classof(const MemRegion* R) {
746 StringRegion(const StringLiteral* str, const MemRegion* sreg)
751 const MemRegion* superRegion);
771 static bool classof(const MemRegion* R) {
782 ObjCStringRegion(const ObjCStringLiteral* str, const MemRegion* sreg)
787 const MemRegion* superRegion);
805 static bool classof(const MemRegion* R) {
818 CompoundLiteralRegion(const CompoundLiteralExpr *cl, const MemRegion* sReg)
823 const MemRegion* superRegion);
837 static bool classof(const MemRegion* R) {
846 DeclRegion(const Decl *d, const MemRegion* sReg, Kind k)
850 const MemRegion* superRegion, Kind k);
856 static bool classof(const MemRegion* R) {
866 VarRegion(const VarDecl *vd, const MemRegion* sReg)
870 const MemRegion *superRegion) {
888 static bool classof(const MemRegion* R) {
903 const MemRegion *sReg)
908 const MemRegion *sReg);
919 static bool classof(const MemRegion* R) {
930 FieldRegion(const FieldDecl *fd, const MemRegion* sReg)
944 const MemRegion* superRegion) {
948 static bool classof(const MemRegion* R) {
964 ObjCIvarRegion(const ObjCIvarDecl *ivd, const MemRegion* sReg);
967 const MemRegion* superRegion);
978 static bool classof(const MemRegion* R) {
992 const MemRegion *Region;
995 RegionRawOffset(const MemRegion* reg, CharUnits offset = CharUnits::Zero())
1001 const MemRegion *getRegion() const { return Region; }
1014 ElementRegion(QualType elementType, NonLoc Idx, const MemRegion* sReg)
1023 SVal Idx, const MemRegion* superRegion);
1043 static bool classof(const MemRegion* R) {
1054 CXXTempObjectRegion(Expr const *E, MemRegion const *sReg)
1058 Expr const *E, const MemRegion *sReg);
1071 static bool classof(const MemRegion* R) {
1084 const MemRegion *SReg)
1088 bool IsVirtual, const MemRegion *SReg);
1100 static bool classof(const MemRegion *region) {
1110 const RegionTy* MemRegion::getAs() const {
1124 llvm::FoldingSet<MemRegion> Regions;
1167 MemRegion::Kind K = MemRegion::GlobalInternalSpaceRegionKind,
1211 const VarRegion* getVarRegion(const VarDecl *D, const MemRegion *superR);
1216 const MemRegion *superRegion,
1220 const MemRegion *superRegion) {
1230 const MemRegion* superRegion);
1233 const MemRegion *superRegion) {
1242 const MemRegion* superRegion);
1252 getCXXBaseObjectRegion(const CXXRecordDecl *BaseClass, const MemRegion *Super,
1259 const MemRegion *superRegion) {
1287 RegionTy* getSubRegion(const A1 a1, const MemRegion* superRegion);
1294 const MemRegion* superRegion);
1298 const MemRegion* superRegion);
1311 inline ASTContext &MemRegion::getContext() const {
1322 llvm::DenseMap<const MemRegion *, StorageTypeForKinds> MRTraitsMap;
1325 typedef llvm::DenseMap<const MemRegion *, StorageTypeForKinds>::const_iterator
1343 void setTrait(const MemRegion *MR, InvalidationKinds IK);
1345 bool hasTrait(const MemRegion *MR, InvalidationKinds IK);
1358 const clang::ento::MemRegion* R) {