[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 01/11] blockjob: remove unnecessary check
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 01/11] blockjob: remove unnecessary check |
Date: |
Wed, 19 Apr 2017 11:16:22 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 |
On 04/19/2017 11:12 AM, Paolo Bonzini wrote:
>
>
> On 19/04/2017 17:48, Eric Blake wrote:
>>> bool block_job_user_paused(BlockJob *job)
>>> {
>> Is it worth using some form of attribute((nonnull)) annotations on
>> various functions, to both state our intentions and let compilers help
>> us catch obvious places where we are violating our intentions? That's
>> more of a generic question to all of qemu, and doesn't affect your
>> particular patch, other than your patch is an instance where the
>> annotation would be useful if we wanted to use them.
>
> What kind of bug would the compiler catch? I suppose Coverity would
> catch all of them, and maybe -flto would as well.
Newer gcc is (finally) getting smarts about warning about passing a
known-NULL value to a function parameter marked nonnull; I think Clang
has been doing it for a while. Coverity definitely flags mismatches
like that. Other bugs that can be caught include checking a parameter
for NULL after it has already been declared to be non-null. And if
nothing else, the documentation factor makes it easier for developers to
remember contracts of various functions.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
- [Qemu-devel] [PATCH for 2.10 00/11] Preparation for block job mutex, Paolo Bonzini, 2017/04/19
- [Qemu-devel] [PATCH 03/11] blockjob: introduce block_job_early_fail, Paolo Bonzini, 2017/04/19
- [Qemu-devel] [PATCH 04/11] blockjob: introduce block_job_pause/resume_all, Paolo Bonzini, 2017/04/19
- [Qemu-devel] [PATCH 08/11] blockjob: group BlockJob transaction functions together, Paolo Bonzini, 2017/04/19
- [Qemu-devel] [PATCH 09/11] blockjob: strengthen a bit test-blockjob-txn, Paolo Bonzini, 2017/04/19
- [Qemu-devel] [PATCH 07/11] blockjob: introduce block_job_cancel_async, check iostatus invariants, Paolo Bonzini, 2017/04/19