Brandon Potter has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/21939 )

Change subject: base,tests: Change assumption about AddrRange size
......................................................................

base,tests: Change assumption about AddrRange size

This changeset fixes an off-by-one error in the size method. An
empty AddrRange (i.e. start and end are equal) would return a
size of 1 even though the end is non-inclusive (according to
doxygen comments).

The changeset also adds two unit tests.

Change-Id: I4bed6e633a4693bd6eaea7624f7f83d1b1165b10
---
M src/base/addr_range.hh
M src/base/addr_range.test.cc
2 files changed, 13 insertions(+), 1 deletion(-)



diff --git a/src/base/addr_range.hh b/src/base/addr_range.hh
index cda6ccf..63647c6 100644
--- a/src/base/addr_range.hh
+++ b/src/base/addr_range.hh
@@ -281,7 +281,7 @@
      */
     Addr size() const
     {
-        return (_end - _start + 1) >> masks.size();
+        return (_end - _start) >> masks.size();
     }

     /**
diff --git a/src/base/addr_range.test.cc b/src/base/addr_range.test.cc
index 54eb198..3bef430 100644
--- a/src/base/addr_range.test.cc
+++ b/src/base/addr_range.test.cc
@@ -42,6 +42,18 @@
 #include "base/addr_range.hh"
 #include "base/bitfield.hh"

+TEST(AddrRange, ValidRange)
+{
+    AddrRange r;
+    EXPECT_FALSE(r.valid());
+}
+
+TEST(AddrRange, EmptyRange)
+{
+    AddrRange r(0x0, 0x0);
+    EXPECT_EQ(0, r.size());
+}
+
 TEST(AddrRangeComp, AddrRangeIsSubset)
 {
     AddrRange r, r1, r2;

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/21939
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I4bed6e633a4693bd6eaea7624f7f83d1b1165b10
Gerrit-Change-Number: 21939
Gerrit-PatchSet: 1
Gerrit-Owner: Brandon Potter <brandon.pot...@amd.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to