Merge with upstream clang