On Sat, 20 Mar 2021 01:24:58 +0900, Peter Maydell wrote: > > In commit 81b3ddaf8772ec we fixed a use of uninitialized data > in read_tcnt(). However this change wasn't enough to placate > Coverity, which is not smart enough to see that if we read a > 2 bit field and then handle cases 0, 1, 2 and 3 then there cannot > be a flow of execution through the switch default. Add explicit > default cases which assert that they can't be reached, which > should help silence Coverity. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
Reviewed-by: Yoshinori Sato <ys...@users.sourceforge.jp> > --- > hw/timer/renesas_tmr.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/hw/timer/renesas_tmr.c b/hw/timer/renesas_tmr.c > index eed39917fec..d96002e1ee6 100644 > --- a/hw/timer/renesas_tmr.c > +++ b/hw/timer/renesas_tmr.c > @@ -146,6 +146,8 @@ static uint16_t read_tcnt(RTMRState *tmr, unsigned size, > int ch) > case CSS_CASCADING: > tcnt[1] = tmr->tcnt[1]; > break; > + default: > + g_assert_not_reached(); > } > switch (FIELD_EX8(tmr->tccr[0], TCCR, CSS)) { > case CSS_INTERNAL: > @@ -159,6 +161,8 @@ static uint16_t read_tcnt(RTMRState *tmr, unsigned size, > int ch) > case CSS_EXTERNAL: /* QEMU doesn't implement this */ > tcnt[0] = tmr->tcnt[0]; > break; > + default: > + g_assert_not_reached(); > } > } else { > tcnt[0] = tmr->tcnt[0]; > -- > 2.20.1 > I'm back. --- Yoshinori Sato