Adding stuff from LLVM/Clang