Hi Sam, I create a branch "unused-include-files" for some experiment patch. Some thing quick and dirty to find out what works and what doesn't. No where near submitting quality. http://git.kernel.org/?p=devel/sparse/chrisl/sparse.git;a=shortlog;h=unused-include-files Currently it just report all unused stream. for your example foo.h: #include <linux/types.h> #include <linux/string.h> struct foo { __u32 bar; __u32 baz; }; $ ./sparse foo.h unused stream preprocessor(1) unused stream foo.h(2) unused stream preprocessor(3) unused stream /usr/include/linux/stddef.h(6) unused stream /usr/include/asm/posix_types.h(7) unused stream /usr/include/asm/types.h(9) unused stream /usr/include/linux/string.h(11) unused stream /usr/include/string.h(12) unused stream /usr/include/features.h(13) unused stream /usr/include/sys/cdefs.h(14) unused stream /usr/include/bits/wordsize.h(15) unused stream /usr/include/gnu/stubs.h(16) unused stream /usr/include/bits/wordsize.h(17) unused stream /usr/include/gnu/stubs-32.h(18) unused stream /usr/lib/gcc/x86_64-redhat-linux/4.3.0//include/stddef.h(19) Just as I expected. Lost of noise :-) BTW, use "-vstream" to show the actual symbol usage detail. Comments? Chris -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html