|
From: | Paolo Bonzini |
Subject: | [Qemu-devel] Re: [PATCH, RFC] Replace assert(0) with abort() or cpu_abort() |
Date: | Mon, 15 Mar 2010 19:33:19 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.8) Gecko/20100301 Fedora/3.0.3-1.fc12 Lightning/1.0b2pre Thunderbird/3.0.3 |
I'd consider not changing assert(0)->abort() if there is code after the assert that looks like an attempt at recovering. Example: if (!p) { printf ("the impossible has happened!"); assert (0); } return p->q; should be changed to abort, while if (!p) { printf ("the impossible has happened!"); assert (0); return 0; } return p->q; should not.Why not? According to manual page, assert(x) is equal to if (!x) abort(). As I mentioned earlier, system emulators don't handle SIGABRT
... which won't be generated if !NDEBUG. Only if the recovery code makes sense, of course. However, my point was that those cases where there is recovery code are not no-brainers.
Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |