From: Stefan Weil <sw@weilnetz.de>
To: Alexander Graf <agraf@suse.de>
Cc: Stefan Hajnoczi <stefanha@gmail.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] Fix compiler warning (always return a value), introduce qemu_abort?
Date: Wed, 26 Oct 2011 18:35:08 +0200 [thread overview]
Message-ID: <4EA836BC.40409@weilnetz.de> (raw)
In-Reply-To: <20111026125431.GC27267@stefanha-thinkpad.localdomain>
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 <sw@weilnetz.de>
>> ---
>> 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:
#define qemu_abort() \
do { \
fprintf(stderr, "QEMU aborted in %s, %s:%u\n", __func__, __FILE__,
__LINE__);
abort();
} while (0)
(The macro could also call a function which handles fprintf and abort).
Cheers,
Stefan W.
next prev parent reply other threads:[~2011-10-26 16:36 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-24 20:18 [Qemu-trivial] [PATCH] Fix compiler warning (always return a value) Stefan Weil
2011-10-24 20:18 ` [Qemu-devel] " Stefan Weil
2011-10-26 12:54 ` [Qemu-trivial] " Stefan Hajnoczi
2011-10-26 12:54 ` Stefan Hajnoczi
2011-10-26 16:35 ` Stefan Weil [this message]
2011-10-26 17:49 ` [Qemu-devel] [PATCH] Fix compiler warning (always return a value), introduce qemu_abort? Blue Swirl
2011-10-26 18:34 ` [Qemu-devel] [RFC] Introduce qemu_abort? (was: Fix compiler warning (always return a value)) Stefan Weil
2011-10-26 18:48 ` Blue Swirl
2011-10-26 20:36 ` Peter Maydell
2011-10-28 7:53 ` [Qemu-devel] [RFC] Introduce qemu_abort? Markus Armbruster
2011-10-27 7:11 ` [Qemu-devel] [PATCH] Fix compiler warning (always return a value), introduce qemu_abort? Stefan Hajnoczi
2011-10-27 8:24 ` Alexander Graf
2011-10-28 7:40 ` [Qemu-trivial] [Qemu-devel] [PATCH] Fix compiler warning (always return a value) Markus Armbruster
2011-10-28 7:40 ` Markus Armbruster
2011-10-28 8:49 ` [Qemu-trivial] " Stefan Hajnoczi
2011-10-28 8:49 ` Stefan Hajnoczi
2011-10-28 8:59 ` [Qemu-trivial] " Markus Armbruster
2011-10-28 8:59 ` Markus Armbruster
2011-10-28 9:02 ` [Qemu-trivial] " Stefan Hajnoczi
2011-10-28 9:02 ` Stefan Hajnoczi
2011-10-28 11:07 ` [Qemu-trivial] " Markus Armbruster
2011-10-28 11:07 ` Markus Armbruster
2011-10-28 12:41 ` [Qemu-trivial] " Stefan Hajnoczi
2011-10-28 12:41 ` Stefan Hajnoczi
2011-10-28 14:39 ` [Qemu-trivial] " Markus Armbruster
2011-10-28 14:39 ` Markus Armbruster
2011-10-28 16:40 ` [Qemu-trivial] " Paolo Bonzini
2011-10-28 16:40 ` [Qemu-devel] " Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EA836BC.40409@weilnetz.de \
--to=sw@weilnetz.de \
--cc=agraf@suse.de \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.