[RFC] Casting NULL pointer

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

[RFC] Casting NULL pointer

Andrew Burgess
There are a small (~26) number of places where the NULL pointer is
cast list this:

    char *wname = (char *) NULL;

This compares to a huge number of places (~726) where we don't use a
cast, so:

    const char *name = NULL;

I've never thought that the cast was either necessary or a
particularly good idea, it feels like unneeded clutter.

I only ask because I was about to push an obvious change that made a
minor edit to a line containing one of the above casts.  I was tempted
to remove the cast, in this case, as a clean up; however, I'm looking
for confirmation that such a change would be viewed as clean up, and
not an unnecessary change.

As a  follow on, given the small number, I'm happy to submit a
patch(es) to remove all of these casts, if its felt that would be a
reasonable clean up.

Thanks,
Andrew
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] Casting NULL pointer

Mark Kettenis
> Date: Sun, 30 Aug 2015 11:09:45 +0100
> From: Andrew Burgess <[hidden email]>
>
> There are a small (~26) number of places where the NULL pointer is
> cast list this:
>
>     char *wname = (char *) NULL;
>
> This compares to a huge number of places (~726) where we don't use a
> cast, so:
>
>     const char *name = NULL;
>
> I've never thought that the cast was either necessary or a
> particularly good idea, it feels like unneeded clutter.

The cast isn't necessary in assignments like that.  However it is
still necessary to cast NULL to an appropriate pointer when passing it
as an argument to a varargs function.
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] Casting NULL pointer

Andrew Burgess
* Mark Kettenis <[hidden email]> [2015-08-30 14:33:00 +0200]:

> > Date: Sun, 30 Aug 2015 11:09:45 +0100
> > From: Andrew Burgess <[hidden email]>
> >
> > There are a small (~26) number of places where the NULL pointer is
> > cast list this:
> >
> >     char *wname = (char *) NULL;
> >
> > This compares to a huge number of places (~726) where we don't use a
> > cast, so:
> >
> >     const char *name = NULL;
> >
> > I've never thought that the cast was either necessary or a
> > particularly good idea, it feels like unneeded clutter.
>
> The cast isn't necessary in assignments like that.  However it is
> still necessary to cast NULL to an appropriate pointer when passing it
> as an argument to a varargs function.

Indeed.  Specifically, these are the cases I'm looking at:

    $ grep -re " = ([^)]\+\*\\s\?)\\s\?NULL" binutils-gdb/gdb/*

Thanks,
Andrew
Reply | Threaded
Open this post in threaded view
|

Re: [RFC] Casting NULL pointer

Doug Evans-5
In reply to this post by Andrew Burgess
On Sun, Aug 30, 2015 at 3:09 AM, Andrew Burgess
<[hidden email]> wrote:

> There are a small (~26) number of places where the NULL pointer is
> cast list this:
>
>     char *wname = (char *) NULL;
>
> This compares to a huge number of places (~726) where we don't use a
> cast, so:
>
>     const char *name = NULL;
>
> I've never thought that the cast was either necessary or a
> particularly good idea, it feels like unneeded clutter.
>
> I only ask because I was about to push an obvious change that made a
> minor edit to a line containing one of the above casts.  I was tempted
> to remove the cast, in this case, as a clean up; however, I'm looking
> for confirmation that such a change would be viewed as clean up, and
> not an unnecessary change.
>
> As a  follow on, given the small number, I'm happy to submit a
> patch(es) to remove all of these casts, if its felt that would be a
> reasonable clean up.

Hi.
SGTM