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