qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: [PATCH, RFC] Replace assert(0) with abort() or cpu_abor


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




reply via email to

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