On 04/01/2018 15:53, Julia Lawall wrote: > > > On Thu, 4 Jan 2018, Francois-Xavier Le Bail wrote: > >> On 04/01/2018 15:09, Julia Lawall wrote: >>> >>> >>> On Thu, 4 Jan 2018, Francois-Xavier Le Bail wrote: >>> >>>> Hi, >>>> >>>> I got high badcounts with some sources. >>> >>> Actually, in this case there are just some parse errrors in the code. >>> >>> ND_PRINT((ndo, " from %s", etheraddr_string(... (line 302) >>> This is missing one ) >>> >>> ND_PRINT((ndo, ", hops %d", EXTRACT_U_1(... (line 322) >>> This has one ) too many. >> >> Bingo ! >> >> Thank you. >> >> Do you have an option or a tool to find these errors ? >> Because neither gcc nor clang find them ! > > No. Actually the parser is built on the assumption that the code has been > approved by the compiler. I'm really puzzled why gcc/clang did not > complain. Perhaps the whole fils is just ifdefd out.
Not ifdefd out in this case. > I don't know why it didn't put BAD on some line, but I guess it was pretty > disoriented. It already seems to have a special handling of macros that > have a single argument that is an argument list, ie ND_PRINT. That macro > is mentioned at the top of the --parse-c output. Maybe it can be helpful > to look around the things that are mentioned there. After doing the ')' fixes. I got: BAD:!!!!! bp = (const struct bootp *); The source line is: bp = (const struct bootp *)cp; I have also the message 'set verbose_parsing for more info' but the '--verbose-parsing' option was used. -- Francois-Xavier _______________________________________________ Cocci mailing list [email protected] https://systeme.lip6.fr/mailman/listinfo/cocci
