On Thu, Oct 09, 2003 at 11:51:09PM -0400, Bruce Momjian wrote: > Alvaro Herrera wrote: > > I'm seeing this compile warning on today's CVS tip: > > > > $ make src/backend/commands/tablecmds.o > > gcc -O2 -g -Wall -Wmissing-prototypes -Wmissing-declarations -I./src/include > > -D_GNU_SOURCE -c -o src/backend/commands/tablecmds.o > > src/backend/commands/tablecmds.c > > src/backend/commands/tablecmds.c: In function `validateForeignKeyConstraint': > > src/backend/commands/tablecmds.c:3528: warning: dereferencing type-punned pointer > > will break strict-aliasing rules > > If you change the offending line to: > > fcinfo.context = (struct Node *) &trigdata; > > I know it shouldn't make a difference, but it is worth a try.
Nope, same warning. I don't know what it means though. I tried some other things to correct it, but I can't find exactly what it's complaining about. What is a "type-punned pointer"? Looking in Google finds this thread first: http://www.mail-archive.com/[EMAIL PROTECTED]/msg58957.html which is full of a very ugly kernel macro (I'm happy to stay away from that): http://www.mail-archive.com/[EMAIL PROTECTED]/msg58957.html This other guy actually posted an useful excerpt from the GCC manpage: http://www.ethereal.com/lists/ethereal-dev/200309/msg00342.html So, I still don't understand what's the noise about. However I think there's no way to silence the warning without uglifying the structs a lot by means of some union. -- Alvaro Herrera (<alvherre[a]dcc.uchile.cl>) "I would rather have GNU than GNOT." (ccchips, lwn.net/Articles/37595/) ---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend