target/riscv/pmp: Add assert for ePMP operations

Although we construct epmp_operation in such a way that it can only be
between 0 and 15 Coverity complains that we don't handle the other
possible cases. To fix Coverity and make it easier for humans to read
add a default case to the switch statement that calls
g_assert_not_reached().

Fixes: CID 1453108
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: LIU Zhiwei <zhiwei_liu@c-sky.com>
Message-id: ec5f225928eec448278c82fcb1f6805ee61dde82.1621550996.git.alistair.francis@wdc.com
This commit is contained in:
Alistair Francis 2021-05-21 06:55:53 +08:00
parent a722701dd3
commit 787a4baf91

View File

@ -402,6 +402,8 @@ bool pmp_hart_has_privs(CPURISCVState *env, target_ulong addr,
case 15: case 15:
*allowed_privs = PMP_READ; *allowed_privs = PMP_READ;
break; break;
default:
g_assert_not_reached();
} }
} else { } else {
switch (epmp_operation) { switch (epmp_operation) {
@ -433,6 +435,8 @@ bool pmp_hart_has_privs(CPURISCVState *env, target_ulong addr,
case 7: case 7:
*allowed_privs = PMP_READ | PMP_WRITE | PMP_EXEC; *allowed_privs = PMP_READ | PMP_WRITE | PMP_EXEC;
break; break;
default:
g_assert_not_reached();
} }
} }
} }