Original:http://blog.llvm.org/2010/04/amazing-feats-of-clang-error-recovery.html