On Mon, Mar 03, 2003 at 04:14:16PM -0500, Vincent Béron wrote:
> Michael Stefaniuc a écrit:
> > 
> > That's even easier in smatch, i have to just check for:
> > (if|for|while)_cond
> > end_(if|for|while)
> > 
> > but that's still a lot of false positives. One false positive (real
> > code) is:
> >     while (*p++ != 0x4D && p < pend);
> > 
> > I need to check what's inside the () too. I'm looking at the moment at
> > the false positives to know what to look for.
> 
> Probably anything that changes a value (++, --, =, +=, -=, *=, /=, etc.).
That is my intention.

> But then you risk losing some real problems, as something might be 
> correctly assigned in the condition part of a while, but with a ";" as 
> loop instead of the real loop.
Hmm ... that is also easy to check
while (...);
{
translates into smatch:
end_while
cmpstmt_start

A lot of nice stuff to play with.

bye
        michael

-- 
Michael Stefaniuc               Tel.: +49-711-96437-199
System Administration           Fax.: +49-711-96437-111
Red Hat GmbH                    Email: [EMAIL PROTECTED]
Hauptstaetterstr. 58            http://www.redhat.de/
D-70178 Stuttgart

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to