[MPlayer-dev-eng] [PATCH] mplayer.c

D Richard Felker III dalias at aerifal.cx
Mon Mar 28 17:20:02 CEST 2005


On Mon, Mar 28, 2005 at 12:38:45PM +0200, Björn Sandell wrote:
> On Mon, 28 Mar 2005 10:15:01 +0200
> Oded Shimon <ods15 at ods15.dyndns.org> wrote:
> 
> > On Sun, Mar 27, 2005 at 10:17:54PM -0500, D Richard Felker III wrote:
> > > On Sun, Mar 27, 2005 at 07:23:06PM -0600, Joey Parrish wrote:
> > > > On Sun, Mar 27, 2005 at 09:10:39PM +0200, Bj?rn Sandell wrote:
> > > > > Avoid some missing sentinel warnings.
> > > > 
> > > > > -          if (execlp("gdb", "gdb", prog_path, spid, NULL) ==
> > > > > -1) +          if (execlp("gdb", "gdb", prog_path, spid, (void
> > > > > *)NULL) == -1)
> > > > 
> > > > > -          execl("/bin/sh","sh","-c",cmd->args[0].v.s,NULL);
> > > > > +          execl("/bin/sh","sh","-c",cmd->args[0].v.s,(void
> > > > > *)NULL);
> > > > 
> > > > This is silly.  There should be no need to cast compatible
> > > > constants.
> > > > 
> > > > 1) NULL should always be assumed to be a pointer (common sense)
> > > > 2) even treating NULL as int, C doesn't care about such stupid
> > > >     casting, only C++ would complain
> > > > 
> > > > What good is this patch?  What is sentinel?
> 
> mplayer.c:3485: warning: missing sentinel in function call
>  
> > > Actually with functions which take a variable number of arguments,
> > > it _does_ matter, since there is no profile to force the right
> > > promotion of 0 to a pointer type. However, NULL is already (void*)0,
> > > so this is nonsense (strictly speaking C allows it to be defined as
> > > 0 I think, but no sane implementation does that..).
> > 
> > If you want to be really anal, the "correct" thing to put is '(char
> > *)0', but  I don't think there is any modern architecture where this
> > matters. This patch  is totally useless, because NULL already is
> > '(void *)0'.
> 
> Well, I used (char *) nut changed it to (void *) due to
> libmenu/menu_console.c rev 1.6. 
> 
> It seems as I'm on one of those insane OSes where NULL is 0L; will
> applying the diff break stuff on any system (where NULL is (void *)0)?

Yes, it breaks readability. :)
Notice the above message is a warning. You can ignore it if you like.

Rich




More information about the MPlayer-dev-eng mailing list