curcpu false positive?

Erik Cederstrand erik at cederstrand.dk
Thu Oct 11 13:06:44 UTC 2012


Hello,

I'm looking at some Clang Static Analyzer reports in the kernel, and a lot of them point back to a null pointer dereference in __pcpu_type (sys/amd64/include/pcpu.h:102) which is defined as:

102	 /*
103	 * Evaluates to the type of the per-cpu variable name.
104	 */
105	#define __pcpu_type(name)                                               \
106	        __typeof(((struct pcpu *)0)->name)


Which indeed looks like a NULL pointer dereference. Looking at the latest commit message there, I'm sure the code is correct, but I'm unsure why the null pointer is OK. I'd appreciate an explanation :-)

Thanks,
Erik


More information about the freebsd-hackers mailing list