On 30/10/2020 01.40, Chen Qun wrote: > When using -Wimplicit-fallthrough in our CFLAGS, the compiler showed warning: > ../accel/tcg/user-exec.c: In function ‘handle_cpu_signal’: > ../accel/tcg/user-exec.c:169:13: warning: this statement may fall through > [-Wimplicit-fallthrough=] > 169 | cpu_exit_tb_from_sighandler(cpu, old_set); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../accel/tcg/user-exec.c:172:9: note: here > 172 | default: > > Mark the cpu_exit_tb_from_sighandler() function with QEMU_NORETURN to fix it. > > Reported-by: Euler Robot <euler.ro...@huawei.com> > Signed-off-by: Chen Qun <kuhn.chen...@huawei.com> > --- > v1->v2: Add QEMU_NORETURN to cpu_exit_tb_from_sighandler() function > to avoid the compiler warnings(Base on Thomas's and Richard's comments). > > Cc: Thomas Huth <th...@redhat.com> > Cc: Riku Voipio <riku.voi...@iki.fi> > Cc: Richard Henderson <richard.hender...@linaro.org> > Cc: Paolo Bonzini <pbonz...@redhat.com> > --- > accel/tcg/user-exec.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c > index 4ebe25461a..293ee86ea4 100644 > --- a/accel/tcg/user-exec.c > +++ b/accel/tcg/user-exec.c > @@ -49,7 +49,8 @@ __thread uintptr_t helper_retaddr; > /* exit the current TB from a signal handler. The host registers are > restored in a state compatible with the CPU emulator > */ > -static void cpu_exit_tb_from_sighandler(CPUState *cpu, sigset_t *old_set) > +static void QEMU_NORETURN cpu_exit_tb_from_sighandler(CPUState *cpu, > + sigset_t *old_set) > { > /* XXX: use siglongjmp ? */ > sigprocmask(SIG_SETMASK, old_set, NULL); >
Reviewed-by: Thomas Huth <th...@redhat.com>