From: Peter H. <haw...@cs...> - 2007-09-14 02:56:23
|
Hi... I'm curious as to why this code: int foo(int *a) { return (a == (void *)0); } seems to map to this code: /* Generated by CIL v. 1.3.6 */ /* print_CIL_Input is true */ #line 1 "t.c" int foo(int *a ) { { #line 2 return ((unsigned int )a == (unsigned int )((void *)0)); } } In particular, why the cast to unsigned int? By my reading of the C99 standard section 6.5.9.5 the cast should be to "int *" since the right hand side is a null-pointer constant. Am I overlooking something? Thanks, Peter |