Sparse, the semantic parser, provides a compiler frontend capable
of parsing most of ANSI C as well as many GCC extensions, and a
collection of sample compiler backends, including a static analyzer
also called "sparse". Sparse provides a set of annotations designed
to convey semantic information about types, such as what address
space pointers point to, or what locks a function acquires or
releases.

Linus Torvalds started writing Sparse in 2003, initially targeting
issues such as mixing pointers to user address space and pointers
to kernel address space.

Homepage:
http://kernel.org/pub/software/devel/sparse/
