I wrote this 

@@
@@
cli_printf(...)
... when != cli_client_execmd_fail(...)


it reports:
Fatal error: exception Failure("False should not be in the final result.  
Perhaps your rule doesn't contain any +/-/* code, or you have a failed 
dependency.")


But i found there is not 'minus' in an example.cocci either....


//
//  Add missing pci_dev_put
//
// Target: Linux
// Copyright:  2012 - LIP6/INRIA
// License:  Licensed under ISC. See LICENSE or 
http://www.isc.org/software/license
// Author: Julia Lawall <[email protected]>
// URL: http://coccinelle.lip6.fr/ 
// URL: http://coccinellery.org/ 

@@
local idexpression x;
expression e;
@@

*x = pci_get_slot(...)
... when != true x == NULL
    when != pci_dev_put(x)
    when != e = x
    when != if (x != NULL) {<+... pci_dev_put(x); ...+>}
*return ...;





-----邮件原件-----
发件人: Julia Lawall [mailto:[email protected]] 
发送时间: 2014年1月26日 19:19
收件人: 林嘉(程二 福州)
抄送: [email protected]
主题: Re: [Cocci] how to write such matching case?

On Sun, 26 Jan 2014, 林嘉(程二 福州) wrote:

> In my project, it's required that if function A is called, and function B 
> must be called following, just like this
>
> Foo(...)
> {
>    If ... {
>        A(....);
>        ...
>        B(....);
>    }
> }
>
> Or
>
> Foo1(...)
> {
>         A(....);
>         B(...);
>  }
>
>
> How to write a patch to find the missing case? Such as
>
> Foo(...)
> {
>    If ... {
>        A(....);
>        ...
>    }
> }
>
> Or
>
> Foo1(...)
> {
>        A(....);
>        ...
> }

A(...)
... When != B(...)

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

Reply via email to