This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix most -Wmissing-prototypes -Wmissing-declarations warnings


> From: Pedro Alves <pedro@codesourcery.com>
> Date: Wed, 18 Feb 2009 14:25:13 +0000
> 
> On Wednesday 18 February 2009 10:12:03, Mark Kettenis wrote:
> > > From: Pedro Alves <pedro@codesourcery.com>
> > > Date: Wed, 18 Feb 2009 02:01:04 +0000
> > > 
> > >  3) several cases of _initialize_foo not being declared.
> > >  
> > > +/* -Wmissing-prototypes */
> > > +extern initialize_file_ftype _initialize_cli_logging;
> > > +
> > 
> > I absolutely detest using initialize_file_ftype for this, since my
> > brain fails to parse this as a function prototype.
> 
> I'm guessing you detest all function pointer variable declarations
> as well then.  I'm quite sure you're capable of getting used to
> it as well, as this is valid C syntax anyway.  You probably have
> already, since you hate it so much, but you're probably in
> denial.  :-)

I don't really like those either, but tey're vastly more acceptable,
since function pointers are variables.  So my brain parsing them as
such, is actually ok.

Oh, and the fact that something is valid C syntax, doesn't mean it is
a good idea of course.

> I disagree with you here, and, I absolutelly love using
> _initialize_file_ftype for this.  The difference between:
> 
>  extern initialize_file_ftype _initialize_foo;
>  void _initialize_foo (void)
>  {}
> 
> ... and:
> 
>  void _initialize_foo (void);
>  void _initialize_foo (void)
>  {}

Well, that's obvious isn't it.  The second example saves you *several*
keystrokes! ;).

> Is that with the former, if the _initializer_BAR functions prototype
> needs to change, we change initialize_file_ftype, and all correctly
> declared and prototypes functions will fail to compile, whereas with
> the latter form, you may miss the change.  the compiler will not
> help you.  So, I claim that all those instance *not* using
> initialize_file_ftype are wrong.

A valid point, although the function prototype is unlikely to ever
change.

> > And, the GNU coding standards still demand full sentences, so in the
> > past I've written stuff like:
> > 
> > /* Provide a prototype to silence -Wmissing-prototypes.  */
> > void _initialize_i386_tdep (void);
> > 
> > I don't feel too strongly about the last point, but it'd be nice to
> > see consistency here.
> > 
> 
> Well, I happened to copy paste from one of the instances that
> does that already, vis (before my patch):
> 
>  >grep missing-prototypes * -rn  | grep -v "ChangeLog" | grep Provide  | wc -l
>  74
> 
>  >grep initialize_file_ftype * -rn| grep -v ChangeLog | wc -l
>  61
> 
> (after my patch, there are 84 instances of the _ftype form)
> 
> Most, if not all the initialize_file_ftype variants use shorter
> description.  It's a bit pedantic, but I'll adjust to use the
> full sentence in the comment for the ones I'm adding.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]