qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Fix compiler warning (always return a value), i


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH] Fix compiler warning (always return a value), introduce qemu_abort?
Date: Thu, 27 Oct 2011 08:11:11 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, Oct 26, 2011 at 06:35:08PM +0200, Stefan Weil wrote:
> Am 26.10.2011 14:54, schrieb Stefan Hajnoczi:
> >On Mon, Oct 24, 2011 at 10:18:43PM +0200, Stefan Weil wrote:
> >>For compilations with -DNDEBUG, the default case did not return
> >>a value which caused a compiler warning.
> >>
> >>Signed-off-by: Stefan Weil <address@hidden>
> >>---
> >>hw/ppce500_spin.c | 11 ++++++++---
> >>1 files changed, 8 insertions(+), 3 deletions(-)
> >>
> >>diff --git a/hw/ppce500_spin.c b/hw/ppce500_spin.c
> >>index cccd940..5b5ffe0 100644
> >>--- a/hw/ppce500_spin.c
> >>+++ b/hw/ppce500_spin.c
> >>@@ -168,17 +168,22 @@ static uint64_t spin_read(void *opaque,
> >>target_phys_addr_t addr, unsigned len)
> >>{
> >>SpinState *s = opaque;
> >>uint8_t *spin_p = &((uint8_t*)s->spin)[addr];
> >>+ uint64_t result = 0;
> >>
> >>switch (len) {
> >>case 1:
> >>- return ldub_p(spin_p);
> >>+ result = ldub_p(spin_p);
> >>+ break;
> >>case 2:
> >>- return lduw_p(spin_p);
> >>+ result = lduw_p(spin_p);
> >>+ break;
> >>case 4:
> >>- return ldl_p(spin_p);
> >>+ result = ldl_p(spin_p);
> >>+ break;
> >>default:
> >>assert(0);
> >
> >I would replace assert(3) with abort(3). If this ever happens the
> >program is broken - returning 0 instead of an undefined value doesn't
> >help.
> >
> >Stefan
> 
> Alex, do you agree on replacing assert() by abort()?
> 
> I personally don't like abort() because it does not show the
> reason for the failure.
> 
> Most users don't know how to get a core dump or how to
> use gdb. And even for those who know, a crash caused
> by an abort() which cannot be reproduced usually happens
> on a system were ulimit disables core dumps...
> 
> I'd like to have a qemu_abort() macro in qemu-common.h which
> replaces all abort() calls used today:

Sounds good.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]