On Fri, Mar 07, 2008 at 03:59:30PM +0100, Vincent Lefevre wrote:
> -# define NONULL(x) x?x:""
> +# define NONULL(x) ((x) != (void *) 0) ? (x) : ""
Both those definitions are absolutely horrid:
Consider:
*NONULL(foo)
1 + NONULL(foo) + 1
NONULL(a == b ? c : d)
I did once have to fight a compiler that optimised out the check:
extern int foo;
if (&foo != NULL) ...
David
[Hint look up weak elf symbols]
--
David Laight: david@xxxxxxxxx