[llvmlinux] GSoC status update

Eduard Bachmakov e.bachmakov at gmail.com
Wed Jul 24 21:11:05 UTC 2013


Hey guys, it's been a while!

So, good news! With my branch ("eduard") it is now possible to do static 
analysis with both scan-build and the kbuild's $CHECK system.

How? make kernel-scan-build or make kernel-check-build.

Does it work? Depends. Both work if host=target. However, with 
cross-compiles scan-build fails because clang -### gives wrong output. 
See LLVM bug 16484. You can still use kernel-check-build but you would 
have to give up the pretty HTML reports.

What about the results? Quite a few tests had to be disabled to a) not 
be swarmed with false positives and b) speed. The attempt to reduce the 
bug reports from 4400+ was pretty successful. Up until the crash about 
2/3 through there were only 400 :-D. (Crash not due checking.)

What checkers were disabled? Basically anything relating to
* not C (e.g. objc, c++)
* glibc stuff (e.g. gets())
* garbage value (uninitialized_var() and the like are not recognized,
   thus there is a lot of spamming)
* other minor things

You can see details on the wiki page: 
http://llvm.linuxfoundation.org/index.php/Static_Analyzer

Checkers can be disabled (and enabled) in arch/all/all.mk

Take a look see if there's anything else to be disabled. Some I left in 
because although they shouldn't really be used in the core code, some 
tools and the like might benefit.

So, please, try out for yourselves!

What's next?
1. Optimize checker selection (i.e. check out those disabled by default)
2. Find real bugs
3. Report them and get developer attention
4. Get dev input on what other checkers should be implemented.
5. Implement them.
6. ...
7. PROFIT!


More information about the LLVMLinux mailing list