diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-08-03 06:34:25 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-08-03 06:34:25 +0000 |
commit | e3273e78da4716f9c999ae207f6898f376a6e1a4 (patch) | |
tree | 4a58854175e9a4f13f72ed567caa96ce3f8f0fa5 /lib/Checker/FlatStore.cpp | |
parent | e888233f6b115d3b0dd73bcb5f35e93794408542 (diff) |
Allow offsets to be negative. Out-of-bound cases are checked elsewhere. We
shouldn't put restrictions in store manager.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110106 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Checker/FlatStore.cpp')
-rw-r--r-- | lib/Checker/FlatStore.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Checker/FlatStore.cpp b/lib/Checker/FlatStore.cpp index e1683e5009..9e7aa753ee 100644 --- a/lib/Checker/FlatStore.cpp +++ b/lib/Checker/FlatStore.cpp @@ -78,7 +78,7 @@ private: public: const MemRegion *R; Interval I; - RegionInterval(const MemRegion *r, uint64_t s, uint64_t e) : R(r), I(s, e){} + RegionInterval(const MemRegion *r, int64_t s, int64_t e) : R(r), I(s, e){} }; RegionInterval RegionToInterval(const MemRegion *R); @@ -186,7 +186,7 @@ FlatStoreManager::RegionToInterval(const MemRegion *R) { switch (R->getKind()) { case MemRegion::VarRegionKind: { QualType T = cast<VarRegion>(R)->getValueType(Ctx); - uint64_t Size = Ctx.getTypeSize(T); + int64_t Size = Ctx.getTypeSize(T); return RegionInterval(R, 0, Size-1); } @@ -197,8 +197,8 @@ FlatStoreManager::RegionToInterval(const MemRegion *R) { // with symbolic offsets. if (!Offset.getRegion()) return RegionInterval(0, 0, 0); - uint64_t Start = Offset.getOffset(); - uint64_t Size = Ctx.getTypeSize(cast<TypedRegion>(R)->getValueType(Ctx)); + int64_t Start = Offset.getOffset(); + int64_t Size = Ctx.getTypeSize(cast<TypedRegion>(R)->getValueType(Ctx)); return RegionInterval(Offset.getRegion(), Start, Start+Size); } |