From: Tiago Muck Date: Wed, 17 Apr 2019 20:02:29 +0000 (-0500) Subject: mem-ruby: Check on PerfectCacheMemory deallocate X-Git-Tag: v20.1.0.0~665 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f4b4ff8d442b2cc73f6575391d15f6bc8aaba277;p=gem5.git mem-ruby: Check on PerfectCacheMemory deallocate Allowing deallocate to be called for non-existing blocks may hide potential bugs. Change-Id: Ida77e2db1da59d7cdb21d58968e1f17e75eaa6e0 Signed-off-by: Tiago Mück Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21921 Reviewed-by: Pouya Fotouhi Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- diff --git a/src/mem/ruby/structures/PerfectCacheMemory.hh b/src/mem/ruby/structures/PerfectCacheMemory.hh index 363e3e8f1..9898995bc 100644 --- a/src/mem/ruby/structures/PerfectCacheMemory.hh +++ b/src/mem/ruby/structures/PerfectCacheMemory.hh @@ -1,4 +1,16 @@ /* + * Copyright (c) 2019 ARM Limited + * All rights reserved. + * + * The license below extends only to copyright in the software and shall + * not be construed as granting a license to any other intellectual + * property including but not limited to intellectual property relating + * to a hardware implementation of the functionality of the software + * licensed hereunder. You may use the software subject to the license + * terms below provided that you ensure that this notice is replicated + * unmodified and in its entirety in all distributions of the software, + * modified or unmodified, in source code or in binary form. + * * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood * All rights reserved. * @@ -138,7 +150,8 @@ template inline void PerfectCacheMemory::deallocate(Addr address) { - m_map.erase(makeLineAddress(address)); + auto num_erased M5_VAR_USED = m_map.erase(makeLineAddress(address)); + assert(num_erased == 1); } // Returns with the physical address of the conflicting cache line