sim: Fix erasure ordering in the futex map.

Erase an element after one of its components are used to erase an
element of another map. This is an error and causes build breakage in
newer versions of gcc.

Change-Id: I83a00410cbf2ae5fc23b12080cd374965df1a5ac
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/60309
Maintainer: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2022-06-02 15:19:04 -07:00
parent 6b92e8ddde
commit a2062c0e00

View File

@@ -123,8 +123,8 @@ FutexMap::wakeup_bitset(Addr addr, uint64_t tgid, int bitmask)
if (waiter.checkMask(bitmask)) {
waiter.tc->activate();
iter = waiterList.erase(iter);
waitingTcs.erase(waiter.tc);
iter = waiterList.erase(iter);
woken_up++;
} else {
++iter;