diff options
author | Giacomo Travaglini <giacomo.travaglini@arm.com> | 2019-03-21 15:41:04 +0000 |
---|---|---|
committer | Giacomo Travaglini <giacomo.travaglini@arm.com> | 2019-03-22 10:01:10 +0000 |
commit | d94e5b5d91c1a4f29264bee9c13edbdb70d0417e (patch) | |
tree | bb2da4b992981e1588949a5dc644d30b6aae48e3 /src/base/circular_queue.test.cc | |
parent | bbcbde7a924ca1ca58df997cfe9f750c285e5564 (diff) | |
download | gem5-d94e5b5d91c1a4f29264bee9c13edbdb70d0417e.tar.xz |
base: Fix CircularQueue's operator-= when negative subtraction
Using operator-= when the rhs is a negative value is equivalent
to using += on -rhs. This is fixing rounding in that scenario.
Change-Id: Ia22e51f81a6805d27fd6b2115d288bb23421d00f
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17528
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Diffstat (limited to 'src/base/circular_queue.test.cc')
-rw-r--r-- | src/base/circular_queue.test.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/base/circular_queue.test.cc b/src/base/circular_queue.test.cc index cce6cb0b6..fd63f7203 100644 --- a/src/base/circular_queue.test.cc +++ b/src/base/circular_queue.test.cc @@ -198,8 +198,10 @@ TEST(CircularQueueTest, IteratorsOp) cq.push_back(first_value); cq.push_back(second_value); + auto negative_offset = -(cq_size + 1); auto it_1 = cq.begin(); auto it_2 = cq.begin() + 1; + auto it_3 = cq.begin() - negative_offset; // Operators test ASSERT_TRUE(it_1 != it_2); @@ -213,6 +215,7 @@ TEST(CircularQueueTest, IteratorsOp) ASSERT_EQ(it_1, it_2 - 1); ASSERT_EQ(it_2 - it_1, 1); ASSERT_EQ(it_1 - it_2, -1); + ASSERT_EQ(it_3._round, 1); auto temp_it = it_1; ASSERT_EQ(++temp_it, it_2); |