Peter Eisentraut <pete...@gmx.net> writes:
> This code in bootstrap.c contains a sequence point violation (or
> whatever that is really called):

>         while ((tup = heap_getnext(scan, ForwardScanDirection)) != NULL)
>         {
>             (*app)->am_oid = HeapTupleGetOid(tup);
>             memmove((char *) &(*app++)->am_typ,
>                     (char *) GETSTRUCT(tup),
>                     sizeof((*app)->am_typ));
>         }

What exactly is the violation?  sizeof() is a side-effect-free compile
time constant, and the first value to be passed to memmove seems
perfectly well defined.

I grant that this is not terribly good coding style, but I don't believe
there's an actual risk here.

> In commit 1aebc361, another place in the same file was fixed like this:

Well, I don't really remember why I did that twelve years ago, but
seeing that there are a number of purely-cosmetic changes in that
commit, I'm thinking it was only meant to be cosmetic.

I certainly have no objection to making this code look more like that
code, I'm just not seeing that it's a bug.

                        regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to