[Cocci] Preprocessor enclosed code ignored
Julia Lawall
julia at diku.dk
Fri May 14 20:30:57 CEST 2010
On Fri, 14 May 2010, Arnaud Lacombe wrote:
> Hi,
>
> On Fri, May 14, 2010 at 1:51 PM, yoann padioleau
> <yoann.padioleau at gmail.com> wrote:
> > There are some hardcoded patterns in the C parser used by coccinelle
> > to not process code under
> > #if 0
> > #endif
> >
> > The reason is that at least in the linux kernel, the code under such
> > ifdef is often not valid C code.
> >
> does it ? I just ran spatch with -noif0_passing in the root of the
> 2.6.33 directory and it completed successfully. I'd be tempted to say
> that having '#if 0' code ignored by default is misleading and error
> prone.
Spatch is not perturbed by code that it can't parse. It just silently
ignores the function containing it. You see warnings if you use the
option -parse_error_msg or -verbose_parsing (different degrees of
verbosity).
It would perhaps be unfortunate if a function with legitimate code were
not treated because it contained code under #if 0 that was somehow
unparsable. But which solution one wants probably depends on the problem
and the code at hand.
julia
More information about the Cocci
mailing list