> Name a POSIX system, or better yet, a platform on which dpkg runs, where
> code and data pointers are not the same size. Using NULL for function
> pointers is fine given certain assumptions, and these days, IMO, one can
> safely make these assumptions.
I think you guys are missing the point. The issue is not code vs data pointers. The issue is
ptr vs data. A varargs function being passed a NULL pointer needs to be passed (void *) 0 or
(char *) 0 or some pointer. Passing just a 0 which is legal representation for a NULL pointer
in C does not work for 64-bit systems. 0 is a 32-bit quantity, (void *) 0 is a 64-bit quantity
for LP64 (Unix/Linux) as well as P64 (Windows) 64-bit platforms.