[GEDI] [RFC v2 6/9] scripts: add coccinelle script to use auto propagated errp

Vladimir Sementsov-Ogievskiy vsementsov at virtuozzo.com
Tue Sep 24 10:35:56 UTC 2019


24.09.2019 0:29, Eric Blake wrote:
> On 9/23/19 3:05 PM, Eric Blake wrote:
> 
>> Does running this Coccinelle script 2 times in a row add a second
>> ERRP_FUNCTION_BEGIN() line?  We want it to be idempotent (no changes on
>> a second run).  (Admittedly, I did not actually test that yet).  Also, I
>> don't know if this can be tweaked to avoid adding the line to a function
>> with an empty body, maybe:
>>
>>   fn(..., Error **errp, ...)
>>   {
>> +    ERRP_FUNCTION_BEGIN();
>>       ...
>>   }

No, we need exactly this to match not only empty functions. But with ... it matches
empty functions as well.

> 
> Also untested:
> 
>   fn(..., Error **errp, ...)
>   {
> (
> |
>       ERRP_FUNCTION_BEGIN();
>       ...
> |
> +    ERRP_FUNCTION_BEGIN()
>       ...
> )
>   }

Seems, that doesn't work..

It says:
12: no available token to attach to

where 12 is line "+    ERRP_FUNCTION_BEGIN()"


So, I tend to just add chunk to remove duplicated invocation :)

> 
> 
>> Overall, the script makes sense in my reading (but no idea if it
>> actually catches everything we want, or if it missed something).
> 
> Having spot-checked 7, it definitely misses cases where it was supposed
> to add ERRP_FUNCTION_BEGIN().
> 


-- 
Best regards,
Vladimir


More information about the integration mailing list