Pull the region offset computation logic into a single method.
llvm-svn: 110102
diff --git a/clang/lib/Checker/FlatStore.cpp b/clang/lib/Checker/FlatStore.cpp
index 51c537e..e1683e5 100644
--- a/clang/lib/Checker/FlatStore.cpp
+++ b/clang/lib/Checker/FlatStore.cpp
@@ -192,14 +192,13 @@
case MemRegion::ElementRegionKind:
case MemRegion::FieldRegionKind: {
- const TypedRegion *TR = cast<TypedRegion>(R);
- RegionOffset Offset = TR->getAsOffset();
- // We cannot compute offset for all ElementRegions, for example, elements
+ RegionOffset Offset = R->getAsOffset();
+ // We cannot compute offset for all regions, for example, elements
// with symbolic offsets.
if (!Offset.getRegion())
return RegionInterval(0, 0, 0);
uint64_t Start = Offset.getOffset();
- uint64_t Size = Ctx.getTypeSize(TR->getValueType(Ctx));
+ uint64_t Size = Ctx.getTypeSize(cast<TypedRegion>(R)->getValueType(Ctx));
return RegionInterval(Offset.getRegion(), Start, Start+Size);
}