Carlo Marcelo Arenas Belon <[EMAIL PROTECTED]> writes: > and run a test, the problem is in /usr/include/iso/stdio_iso.h that defined > NULL as an int and not a pointer as shown by :
NULL is not a pointer, it is a null pointer constant, and 0 is a valid null pointer constant. > contradicting (at least in spirit) the C99 (ISO/IEC 9899:TCS) standard that > says : > > "A pointer to void shall have the same representation and alignment > requirements as a pointer to a character type" A null pointer constant is not a pointer. It can be convert to a pointer, but that happens only in the right context (through explicit or implicit conversions). > and therefore makes sizeof(*NULL) == 1 solving the problem to compile as it is > done if applying the following patch : > > Carlo > > --- > --- qemu/hw/sh7750.c Sun Oct 7 09:31:11 2007 > +++ qemu/hw/sh7750.c Sun Nov 11 16:13:13 2007 > @@ -29,6 +29,9 @@ > #include "sh7750_regnames.h" > #include "sh_intc.h" > > +#undef NULL > +#define NULL ((void *)0) This does not make it better, since sizeof(void) is still not allowed in C. Andreas. -- Andreas Schwab, SuSE Labs, [EMAIL PROTECTED] SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."