Home | History | Annotate | Download | only in Checkers

Lines Matching defs:Region

50   const MemRegion *getArrayRegion(const MemRegion *Region, bool &Polymorphic,
52 const MemRegion *getPointedRegion(const MemRegion *Region,
105 PointerArithChecker::getPointedRegion(const MemRegion *Region,
107 assert(Region);
109 SVal S = State->getSVal(Region);
113 /// Checks whether a region is the part of an array.
116 /// allocation kind of the inspected region.
117 const MemRegion *PointerArithChecker::getArrayRegion(const MemRegion *Region,
121 assert(Region);
122 while (const auto *BaseRegion = dyn_cast<CXXBaseObjectRegion>(Region)) {
123 Region = BaseRegion->getSuperRegion();
126 if (const auto *ElemRegion = dyn_cast<ElementRegion>(Region)) {
127 Region = ElemRegion->getSuperRegion();
131 if (const AllocKind *Kind = State->get<RegionState>(Region)) {
134 return Region;
138 // When the region is symbolic and we do not have any information about it,
140 if (isa<SymbolicRegion>(Region))
141 return Region;
156 const MemRegion *Region = C.getSVal(E).getAsRegion();
157 if (!Region)
160 Region = getPointedRegion(Region, C);
161 if (!Region)
167 getArrayRegion(Region, IsPolymorphic, Kind, C)) {
190 Region->getKind() == MemRegion::Kind::SymbolicRegionKind)
202 R->markInteresting(Region);
229 const MemRegion *Region = SV.getAsRegion();
230 if (!Region)
236 State = State->set<RegionState>(Region, AllocKind::Array);
250 const MemRegion *Region = AllocedVal.getAsRegion();
251 if (!Region)
253 State = State->set<RegionState>(Region, Kind);
266 const MemRegion *Region = CastedVal.getAsRegion();
267 if (!Region)
271 State = State->set<RegionState>(Region, AllocKind::Reinterpreted);
284 const MemRegion *Region = CastedVal.getAsRegion();
285 if (!Region)
288 if (const AllocKind *Kind = State->get<RegionState>(Region)) {
292 State = State->set<RegionState>(Region, AllocKind::Array);