On Fri, 21 May 2010, Arnaud Lacombe wrote:
> Hi,
>
> On Fri, May 21, 2010 at 10:48 AM, Julia Lawall <[email protected]> wrote:
> > I don't think I am going to be very successful with fixing this. The
> > problem is that a function prototype initially looks like a K&R function
> > definition, eg
> >
> > int f(foo,bar,xyz)
> >
> > If it is a prototype, then foo, bar, and xyz are typedefs (presumably
> > defined in some header file we don't have access too). If it is a K&R
> > definition, then they are variables.
> >
> > Unfortunately, trying to make the parser aware of which it is seems to
> > introduce conflicts.
> >
> Shouldn't a function prototype be always terminated by a ';' which
> would allow the parser to differentiate between prototype, K&R
> function declaration and standard function.
Yes, but the parser just isn't organized in that way. It has a rule for
the type-name-parameter list that is shared by prototypes, standard
functions, and K&R functions. The ; is dealt with somewhere else.
> > Since K&R C is not very well supported anyway, due to the need for the
> > declarations not to appear in the leftmost column, and due to the general
> > complexity of the parser, I think the risk of breaking something is higher
> > than the benefit of fixing the problem.
> >
> he, I guess that's another argument is favor of getting rid of such
> declaration.
Yes, I think that would be best...
julia
_______________________________________________
Cocci mailing list
[email protected]
http://lists.diku.dk/mailman/listinfo/cocci
(Web access from inside DIKUs LAN only)