Messages in this thread |  | | Date | Thu, 31 Mar 2005 11:12:21 +1000 | From | Nick Piggin <> | Subject | Re: Not a GCC bug (was Re: Big GCC bug!!! [Was: Re: Do not misuse Coverity please]) |
| |
Kyle Moffett wrote: > On Mar 30, 2005, at 18:38, Jakub Jelinek wrote: > >> This testcase violates ISO C99 6.3.2.3: >> If a null pointer constant is converted to a pointer type, the resulting >> pointer, called a null pointer, is guaranteed to compare unequal to a >> pointer to any object or function. > > > Except that the result of dereferencing a null pointer is implementation > defined according to the C99 standard. My implementation allows me to mmap > stuff at NULL, and therefore its compiler should be able to handle that > case. I would have no problem with either the standard or implementation > if it either properly handled the case or didn't allow it in the first > place. > > On another note, I've discovered the flag > "-fno-delete-null-pointer-checks", > which should probably be included in the kernel makefiles to disable that > optimization for the kernel. (Ok, yes, I apologize, this isn't really a > GCC > bug, the behavior is documented, although it can be quite confusing. I > suspect it may bite some platform-specific code someday. It also muddies > the waters somewhat with respect to the original note (and the effects on > the generated code): > >> int x = my_struct->the_x; >> if (!my_struct) return; >
Why should this be in the kernel makefiles? If my_struct is NULL, then the kernel will never reach the if statement.
A warning might be nice though.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |