Lines Matching full:region

51   const MemRegion *getArrayRegion(const MemRegion *Region, bool &Polymorphic,
53 const MemRegion *getPointedRegion(const MemRegion *Region,
105 PointerArithChecker::getPointedRegion(const MemRegion *Region, in getPointedRegion() argument
107 assert(Region); in getPointedRegion()
109 SVal S = State->getSVal(Region); in getPointedRegion()
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, in getArrayRegion() argument
121 assert(Region); in getArrayRegion()
122 while (const auto *BaseRegion = dyn_cast<CXXBaseObjectRegion>(Region)) { in getArrayRegion()
123 Region = BaseRegion->getSuperRegion(); in getArrayRegion()
126 if (const auto *ElemRegion = dyn_cast<ElementRegion>(Region)) { in getArrayRegion()
127 Region = ElemRegion->getSuperRegion(); in getArrayRegion()
131 if (const AllocKind *Kind = State->get<RegionState>(Region)) { in getArrayRegion()
134 return Region; in getArrayRegion()
138 // When the region is symbolic and we do not have any information about it, in getArrayRegion()
140 if (isa<SymbolicRegion>(Region)) in getArrayRegion()
141 return Region; in getArrayRegion()
156 const MemRegion *Region = C.getSVal(E).getAsRegion(); in reportPointerArithMisuse() local
157 if (!Region) in reportPointerArithMisuse()
160 Region = getPointedRegion(Region, C); in reportPointerArithMisuse()
161 if (!Region) in reportPointerArithMisuse()
167 getArrayRegion(Region, IsPolymorphic, Kind, C)) { in reportPointerArithMisuse()
187 Region->getKind() == MemRegion::Kind::SymbolicRegionKind) in reportPointerArithMisuse()
196 R->markInteresting(Region); in reportPointerArithMisuse()
223 const MemRegion *Region = SV.getAsRegion(); in checkPostStmt() local
224 if (!Region) in checkPostStmt()
230 State = State->set<RegionState>(Region, AllocKind::Array); in checkPostStmt()
244 const MemRegion *Region = AllocedVal.getAsRegion(); in checkPostStmt() local
245 if (!Region) in checkPostStmt()
247 State = State->set<RegionState>(Region, Kind); in checkPostStmt()
260 const MemRegion *Region = CastedVal.getAsRegion(); in checkPostStmt() local
261 if (!Region) in checkPostStmt()
265 State = State->set<RegionState>(Region, AllocKind::Reinterpreted); in checkPostStmt()
278 const MemRegion *Region = CastedVal.getAsRegion(); in checkPreStmt() local
279 if (!Region) in checkPreStmt()
282 if (const AllocKind *Kind = State->get<RegionState>(Region)) { in checkPreStmt()
286 State = State->set<RegionState>(Region, AllocKind::Array); in checkPreStmt()