Julia Lawall <[email protected]> writes:
> On Sat, 21 Jun 2014, Rusty Russell wrote:
>
>> Hi!
>> 
>>         In my current project, I moved a field from a structure
>> (struct block) into another network-endian structure.  I used the
>> following patch.cocci to do the fixups:
>> 
>>         @ rule1 @
>>         struct block *b;
>>         @@
>>         
>>         - b->blocknum
>>         + le32_to_cpu(b->hdr->depth)
>> 
>> It got 99%, but it missed the two cases where b was actually in another
>> structure, ie. "te->block->blocknum".
>> 
>> I *think* this is because I want to substitute any expression of type
>> struct block *, rather than only identifiers?
>> 
>> But I couldn't understand the documentation enough to do this :(
>
> You are already working on expressions.  The problem is that sometimes 
> Coccinelle doesn't know what is the type of te->block.  To give it the 
> most possible amount of informations, you can give the options
>
> --recursive-includes --relax-include-path

Ah, thanks for the explanation, and indeed, that worked perfectly.

And thanks Julia and Lars for your quick responses!

Cheers,
Rusty.

_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to