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

Reply via email to