[Rd] Strict-prototypes definitions in R includes

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun Jan 27 23:36:55 CET 2008


I think the answer is 'it depends'.

- such prototypes are not required by C99.
- using (void) is part of some authors' style and not of others. For the
   latter, this is not an 'oversight' but an uglification.
- in some cases the omission is deliberate as the function is used for
   variable sets of arguments (e.g, in GraphicsDevice.h).
- in others the omission is because it seemed safer to leave the
   prototype out than to get it wrong (when passing functions, for
   example).
- some code is taken from other projects and still has K&R style
   declarations.

On Sun, 27 Jan 2008, Laurent Gautier wrote:

>  Dear list,
>
>  Whenever the flag "-Wstrict-prototypes" is set in gcc, compiling code that
> includes headers in lib/R/include generates often warnings
> (example with R-2.6.1:
> Rinternals.h:560: warning: function declaration isn't a prototype
> ).
>
>  All such warnings I looked at were about functions with empty
> signatures declared
> as "bar foo();" rather than "bar foo(void);". Is there a reason, or is
> this just an oversight in the include files ?

It seems you were rather selective in your looking.

>
>  Thanks,
>
>
> Laurent

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list