[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH][TOOLS] libfsimage, pygrub, python: cleanup



John Levon writes ("Re: [Xen-devel] [PATCH][TOOLS] libfsimage, pygrub, python: 
cleanup"):
> On Tue, Jul 15, 2008 at 03:43:16PM +0200, [someone] wrote:
> >  fsi_plugin_ops_t *
> > +fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name);
> > +
> > +fsi_plugin_ops_t *
> >  fsi_init_plugin(int version, fsi_plugin_t *fp, const char **name)
> 
> Huh? If some GCC option is insisting on this, it's a stupid option and
> shouldn't be enabled.

This is the result of (a) -Wmissing-prototypes, which is sensible
and (b) the submitter missing the point.

The purpose of -Wmissing-prototypes is to spot this situation:

  a.h:  double function(void);

  b.c:  #include "a.h"
        double some_caller(void) { return function(); }

  a.c:  int function(void) { return 1; }

The result of this is undefined behaviour, and neither the compiler
nor the linker will spot it.  If you pass -Wmissing-prototypes, then
the compiler will complain in a.c that there was no prototype for
function in scope.

This is supposed to clue you in to the missing #include.  You are
supposed to change a.c to this

  a.c:  #include "a.h"
        int function(void) { return 1; }

and now the compiler will tell you that your definition and
declaration of function do not match.

However if you don't understand this, you may do what the submitter of
this patch did, which is to change a.c to read like this:

  a.c:  int function(void);
        int function(void) { return 1; }

This completely defeats the point of -Wmissing-prototypes; I think
it's just wrong.

Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.