On Mon, 8 Aug 2011, Lucas De Marchi wrote:

> On Mon, Aug 8, 2011 at 12:09 PM, Julia Lawall <[email protected]> wrote:
> > On Mon, 8 Aug 2011, Lucas De Marchi wrote:
> >
> >> Hi Julia
> >>
> >> On Mon, Aug 8, 2011 at 11:55 AM, Julia Lawall <[email protected]> wrote:
> >> > On Mon, 8 Aug 2011, Lucas De Marchi wrote:
> >> >
> >> >> Is there a cocci script to find the use of VLAs?
> >> >
> >> > What is a VLA?
> >>
> >> Variable length array. I used the following script, but it doesn't
> >> detect all the cases. What I need is to detect whether the size of the
> >> array is discovered by the compiler at compile time or at run time.
> >>
> >>
> >> @r1@
> >> constant c1, c2, c3, c4;
> >> expression e;
> >> type x;
> >> identifier x1;
> >> @@
> >> (
> >>  x x1[c1];
> >> |
> >>  x x1[c1 + c2];
> >> |
> >>  x x1[c1 + c2 + c3];
> >> |
> >>  x x1[c1 + c2 + c3 + c4];
> >> |
> >> * x x1[e];
> >> )
> >
> > Maybe the following:
> 
> Yeah, this seems to work, but see the comment below.
> 
> > @r@
> > type t;
> > identifier x,i;
> > position p;
> > @@
> >
> > t x[<+...i@p...+>]
> 
> Coccinelle complains here. If I put a semicolon here then all is fine.

Oops, sorry.  A declaration is a statement, so it always needs a 
semicolon.

julia


> > @s@
> > position r.p;
> > constant c;
> > type t;
> > identifier x;
> > @@
> >
> > t x[<+...c@p...+>]
> 
> and here
> 
> >
> > @depends on !s@
> > position r.p;
> > type t;
> > identifier x,i;
> > @@
> >
> > *t x[<+...i@p...+>]
> 
> here too
> 
> thanks
> Lucas De Marchi
> 
_______________________________________________
Cocci mailing list
[email protected]
http://lists.diku.dk/mailman/listinfo/cocci
(Web access from inside DIKUs LAN only)

Reply via email to