Re: fix for strict-alias warnings - Mailing list pgsql-patches
From | Andrew Dunstan |
---|---|
Subject | Re: fix for strict-alias warnings |
Date | |
Msg-id | 012401c3901f$c95fa3a0$6401a8c0@DUNSLANE Whole thread Raw |
In response to | Re: fix for strict-alias warnings (Bruce Momjian <pgman@candle.pha.pa.us>) |
Responses |
Re: fix for strict-alias warnings
|
List | pgsql-patches |
Tough words! :-) ISTM the best thing would be to back out the patch, add -fno-strict-aliasing for gcc, and add a TODO to fix this thoroughly. Having -fstrict-aliasing on and ignoring the warnings doesn't seem like a sound strategy. I think we should fix it or turn it off. The web is littered with projects that got bizzare happenings when they turned it on without any accompanying code changes. I agree with Tom that my patch isn't ideal (I thought I said as much). Fixing it thoroughly will require some significant code changes, though. We seem to be far too close to 7.4 release to contemplate that. cheers andrew ----- Original Message ----- From: "Tom Lane" <tgl@sss.pgh.pa.us> To: "Bruce Momjian" <pgman@candle.pha.pa.us> Cc: "Andrew Dunstan" <andrew@dunslane.net>; "PG Patches" <pgsql-patches@postgresql.org> Sent: Saturday, October 11, 2003 1:29 PM Subject: Re: [PATCHES] fix for strict-alias warnings > 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 > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
pgsql-patches by date: