From e63a5a1aeaf00773df7e95a87d5468a790e0c708 Mon Sep 17 00:00:00 2001 From: Nikos Nikoleris Date: Fri, 13 Dec 2019 16:25:49 +0000 Subject: base: Fix AddrRange::isSubset() check Making _end non-inclusive, introduced a bug in isSubset() which was checking if _end is included in the input address range. This CL changes the behavior and now we test if _end - 1 is in the range. Change-Id: Ib8822472b7c266e10d55f3d5cf22a46aa45c1fc7 Signed-off-by: Nikos Nikoleris Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23663 Reviewed-by: Bobby R. Bruce Reviewed-by: Jason Lowe-Power Maintainer: Bobby R. Bruce Tested-by: kokoro --- src/base/addr_range.hh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/base/addr_range.hh') diff --git a/src/base/addr_range.hh b/src/base/addr_range.hh index 2a18551b2..f53c08b63 100644 --- a/src/base/addr_range.hh +++ b/src/base/addr_range.hh @@ -390,7 +390,7 @@ class AddrRange // whether it would fit in a continuous segment of the input // addr range. if (r.interleaved()) { - return r.contains(_start) && r.contains(_end) && + return r.contains(_start) && r.contains(_end - 1) && size() <= r.granularity(); } else { return _start >= r._start && _end <= r._end; -- cgit v1.2.3