Re: remove obsolete NULL casts
От | Tom Lane |
---|---|
Тема | Re: remove obsolete NULL casts |
Дата | |
Msg-id | 16854.1073410709@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: remove obsolete NULL casts (Neil Conway <neilc@samurai.com>) |
Список | pgsql-patches |
Neil Conway <neilc@samurai.com> writes: > Ah, good catch! Upon further investigation, you're completely correct: > technically, you need to cast the NULL literal to a pointer type in a > function call if (a) there is no prototype for the function, or (b) > the function is a varargs function (which execl() is). > I'd imagine it would only make a difference on a machine where the > null pointer is represented by a non-zero bit pattern (i.e. it > shouldn't make a difference on any modern machine), Actually, I think it would be likely to be important on any machine where sizeof(pointer) != sizeof(int), which is reasonably common in 64-bit-pointer land. C99 saith An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. So one plausible definition of NULL is just "#define NULL 0", and without the explicit cast it would probably be taken as an integer argument, which would be the wrong size. > but we should do this correctly, of course. Check. > I won't bother posting an updated patch, but I'll include your fix in > the patch when I apply it. Thanks again. Sounds good. regards, tom lane
В списке pgsql-patches по дате отправления: