Re: fix for strict-alias warnings - Mailing list pgsql-patches

From Tom Lane
Subject Re: fix for strict-alias warnings
Date
Msg-id 27440.1065893347@sss.pgh.pa.us
Whole thread Raw
In response to Re: fix for strict-alias warnings  (Bruce Momjian <pgman@candle.pha.pa.us>)
List pgsql-patches
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> I don't have a version that does the double-cast, but I still have the
> patch to back out and put in a new one.  Andrew's point was that we cast
> to void * in many places, so this case is not unique.  Is that wrong?

I do not like code that uses cast to void* as a substitute for casting
to the real destination type.  I think it's a lazy substitute for
providing the correct cast, and it renders the code more fragile because
there is *no* possibility of the compiler detecting a problem should you
change the source or destination datatype in a way that renders the cast
wrong.

I have not gone around and tried to fix all the places that are lazy in
this way, but I don't want to introduce more, and for sure I don't want
to set a precedent that we'll weaken our type checking any time gcc
burps for ill-defined reasons.

I agree completely with all of the objections you raised in your
original comment on the patch.  In particular, I don't think we
understand why gcc is complaining about these few places and not any of
the thousands of other casts in our code.  Until we understand that
difference completely, we are not "fixing a bug" by introducing void*
casts.  I'd have to call it cargo-cult programming instead.

I am perfectly content to leave the warnings in place until we have a
satisfactory explanation.

            regards, tom lane

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: fix for strict-alias warnings
Next
From: "Andrew Dunstan"
Date:
Subject: Re: fix for strict-alias warnings