Last year I undertook my 3rd year dissertation at the University of Nottingham and the project which I chose to do was to design a code analyser for C/C++ to detect common errors such as uninitialised variables, array bounds errors, memory leaks etc. I decided to design my analyser on top of Clang and it works by doing a mixture of static analysis and dynamic analysis by doing AST transformations to the C/C++ program and inserting some checks into the code for runtime analysis. The project was pretty successful but it is by no means finished. I am currently completing my masters but doing a different dissertation project at the moment and my friend has taken over my project in an attempt to finish off the work which I completed. I currently thinking of a project to do over the summer of 2013 and was thinking of either working on the code analyser (which should hopefully be better developed by my friend this year) or implementing some of the potential checks (http://clang-analyzer.llvm.org/potential_checkers.html) into the static analyser. I very much enjoyed working with Clang and would like to continue working with it.
I have uploaded a copy of my dissertation document here - https://docs.google.com/open?id=0B3FSV1geiEaEWXZaaFJXam5WZXc
If anyone has any comments or feedback I would be happy to answer!