Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Julia Lawall



On Wed, 15 Jan 2020, Oleg Nesterov wrote:

> On 01/15, Julia Lawall wrote:
> >
> > On Wed, 15 Jan 2020, Oleg Nesterov wrote:
> >
> > > $ spatch --sp-file test.cocci test.c
> > >
> > >   (ONCE) Expected tokens mem TTT
> > >   Skipping: test.c
> > >
> > > I tried to play with various --.*include.* options, but nothing seems to 
> > > work
> > > unless I add "inc.h" to the command line explicitly.
> >
> > The problem is that the file filtering happens before the parsing, and it
> > is the parsing that finds the includes.
>
> Yes, thanks, this was clear to me,
>
> > You can disable the file
> > filtering with --disable-worth-trying-opt.
>
> Heh. I swear, I even did
>
>   $ spatch --longhelp 2>&1 | grep disable
>
> but apparently I can't read.

The name is not super intuitive, and is more tied to the code than the
user intuition.  I spent some time searching for -no- and for something
about files.

julia
___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci


Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Oleg Nesterov
On 01/15, Julia Lawall wrote:
>
> On Wed, 15 Jan 2020, Oleg Nesterov wrote:
>
> > $ spatch --sp-file test.cocci test.c
> >
> > (ONCE) Expected tokens mem TTT
> > Skipping: test.c
> >
> > I tried to play with various --.*include.* options, but nothing seems to 
> > work
> > unless I add "inc.h" to the command line explicitly.
>
> The problem is that the file filtering happens before the parsing, and it
> is the parsing that finds the includes.

Yes, thanks, this was clear to me,

> You can disable the file
> filtering with --disable-worth-trying-opt.

Heh. I swear, I even did

$ spatch --longhelp 2>&1 | grep disable

but apparently I can't read.

Thanks a lot!

Oleg.

___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci


Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Julia Lawall



On Wed, 15 Jan 2020, Oleg Nesterov wrote:

> On 01/15, Oleg Nesterov wrote:
> >
> > Another question...
>
> Oh, and another one ;)
>
> http://coccinelle.lip6.fr/docs/main_grammar006.html mentions
> "typeof(expr/ctype)", but I failed to find any doc/example of
> how can it be used in SPL.
>
> Could you explain it?

@@
@@

- typeof(foo) x;

That is, you can match against the above code.  But there is no evaluation
of what typeof(foo) actually means.

julia
___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci


Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Oleg Nesterov
On 01/15, Oleg Nesterov wrote:
>
> Another question...

Oh, and another one ;)

http://coccinelle.lip6.fr/docs/main_grammar006.html mentions
"typeof(expr/ctype)", but I failed to find any doc/example of
how can it be used in SPL.

Could you explain it?

Oleg.

___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci


Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Julia Lawall



On Wed, 15 Jan 2020, Oleg Nesterov wrote:

> On 01/15, Julia Lawall wrote:
> >
> > Yes, it doesn't currently understand typeof.  If it's a big problem, it
> > should be easy to fix.
>
> OK, thanks Julia.
>
> Another question...
>
> inc.h:
>
>   struct TTT { int mem; } *ptr;
>
> test.c:
>
>   #include "inc.h"
>
>   void func(void)
>   {
>   ptr->mem = 0;
>   }
>
> test.cocci:
>
>   @r@
>   struct TTT *p;
>   @@
>
>   * p->mem
>
> $ spatch --sp-file test.cocci test.c
>
>   (ONCE) Expected tokens mem TTT
>   Skipping: test.c
>
> I tried to play with various --.*include.* options, but nothing seems to work
> unless I add "inc.h" to the command line explicitly.

The problem is that the file filtering happens before the parsing, and it
is the parsing that finds the includes.  You can disable the file
filtering with --disable-worth-trying-opt.

julia
___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci


Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Oleg Nesterov
On 01/15, Julia Lawall wrote:
>
> Yes, it doesn't currently understand typeof.  If it's a big problem, it
> should be easy to fix.

OK, thanks Julia.

Another question...

inc.h:

struct TTT { int mem; } *ptr;

test.c:

#include "inc.h"

void func(void)
{
ptr->mem = 0;
}

test.cocci:

@r@
struct TTT *p;
@@

* p->mem

$ spatch --sp-file test.cocci test.c

(ONCE) Expected tokens mem TTT
Skipping: test.c

I tried to play with various --.*include.* options, but nothing seems to work
unless I add "inc.h" to the command line explicitly.

Oleg.

___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci


Re: [Cocci] Q: does spatch understand typeof?

2020-01-15 Thread Julia Lawall
On Wed, 15 Jan 2020, Oleg Nesterov wrote:

> Hello,
>
> trivial example:
>
>   @r@
>   int x;
>   @@
>
>   * x = 0;
>
> C code:
>
>   void f(void)
>   {
>   int a;
>   __typeof__(a) b;
>
>   a = 0;  // this matches
>   b = 0;  // this doesn't
>   }
>
> is it correct?

Yes, it doesn't currently understand typeof.  If it's a big problem, it
should be easy to fix.

julia
___
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci