[Freeipa-devel] [PATCH 0224-0225] Add function attributes warn_unused_result and nonnull and add missing CHECK()s to string operations

Lukas Slebodnik lslebodn at redhat.com
Fri Feb 21 15:32:28 UTC 2014


On (21/02/14 10:20), Nathaniel McCallum wrote:
>On Fri, 2014-02-21 at 16:17 +0100, Petr Spacek wrote:
>> On 21.2.2014 16:16, Nathaniel McCallum wrote:
>> > On Fri, 2014-02-21 at 16:12 +0100, Petr Spacek wrote:
>> >> Hello,
>> >>
>> >> Add function attributes warn_unused_result and nonnull
>> >> where appropriate and add missing CHECK()s to string operations.
>> >>
>> >> Lukas, thanks for catching the missing CHECK() around str_new().
>> >>
>> >> As a reward, you can review attached patches.
>> >>
>> >> Have fun! :-)
>> >
>> > NACK
>> >
>> > Adding attributes to a function definition is a no-op and can create
>> > potential confusion should the definitions and declarations differ.
>> >
>> > I would strongly prefer that they are only used in function
>> > declarations.
>> >
>> > Nathaniel
>> 
>> Sorry, but you are not right.
>> 
>> Attributes work perfectly fine for static functions without previous declaration.
>
>Gah. You're right. I had assumed the header changes were duplicates of
>the static functions. Please disregard.
>
1. It does not make sense to have declaration of static function in header file
2. Sometimes, it's better to test patches instead of sending useless reply.

For your information:

You need to use attribute after declaration.
    isc_result_t
    manager_get_ldap_instance(const char *name,
                              ldap_instance_t **ldap_inst) ATTR_NONNULLS;


In case of static function, you need to use attribute before name of function.
In other case, it would be no-op. This is a small difference between using
attributes with function declaration and function definition.

    static isc_result_t ATTR_NONNULLS
    setting_get(const char *const name, const setting_type_t type,
                        const settings_set_t *const set, void *target)
    {
            /* body */
            return 0;
    }

LS




More information about the Freeipa-devel mailing list