diff --git a/bindings/python/clang/cindex.py b/bindings/python/clang/cindex.py
index 81b2f3f6050b16bee5c3cbedfc92e176a9fae481..b673f4b5777df938d9cb312019e3d6a9bed1ee87 100644
--- a/bindings/python/clang/cindex.py
+++ b/bindings/python/clang/cindex.py
@@ -3404,8 +3404,8 @@ class Config:
         python bindings can disable the compatibility check. This will cause
         the python bindings to load, even though they are written for a newer
         version of libclang. Failures now arise if unsupported or incompatible
-        features are accessed. The user is required to test himself if the
-        features he is using are available and compatible between different
+        features are accessed. The user is required to test themselves if the
+        features they are using are available and compatible between different
         libclang versions.
         """
         if Config.loaded:
diff --git a/docs/SanitizerSpecialCaseList.rst b/docs/SanitizerSpecialCaseList.rst
index 8f4727c2fbc341a70983a5e14d71696e9969e078..a4165b2521cfa626a435c6cb9d674a4da02fc6f9 100644
--- a/docs/SanitizerSpecialCaseList.rst
+++ b/docs/SanitizerSpecialCaseList.rst
@@ -24,7 +24,7 @@ certain source-level entities to:
   thread stack, bypassing the frame boundaries);
 * ignore a known problem.
 
-To achieve this, user may create a file listing the entities he wants to
+To achieve this, user may create a file listing the entities they want to
 ignore, and pass it to clang at compile-time using
 ``-fsanitize-blacklist`` flag. See :doc:`UsersManual` for details.
 
diff --git a/include/clang/Basic/DiagnosticCommentKinds.td b/include/clang/Basic/DiagnosticCommentKinds.td
index 49296f9b5e1ea63d47d964e808f66984dab8c745..6dc8b27a2ac91448b05cb25129e914f2d499c430 100644
--- a/include/clang/Basic/DiagnosticCommentKinds.td
+++ b/include/clang/Basic/DiagnosticCommentKinds.td
@@ -11,7 +11,7 @@ let Component = "Comment" in {
 let CategoryName = "Documentation Issue" in {
 
 // HTML parsing errors.  These are under -Wdocumentation to make sure the user
-// knows that we didn't parse something as he might expect.
+// knows that we didn't parse something as they might expect.
 
 def warn_doc_html_start_tag_expected_quoted_string : Warning<
   "expected quoted string after equals sign">,
diff --git a/lib/ARCMigrate/TransRetainReleaseDealloc.cpp b/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
index 33c651952e374260626e12c8ac9b2c13f28175a5..bcbc9e9612ba2434e6c3ed95e2bd388c8d830797 100644
--- a/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
+++ b/lib/ARCMigrate/TransRetainReleaseDealloc.cpp
@@ -70,7 +70,7 @@ public:
           // An unused autorelease is badness. If we remove it the receiver
           // will likely die immediately while previously it was kept alive
           // by the autorelease pool. This is bad practice in general, leave it
-          // and emit an error to force the user to restructure his code.
+          // and emit an error to force the user to restructure their code.
           Pass.TA.reportError("it is not safe to remove an unused 'autorelease' "
               "message; its receiver may be destroyed immediately",
               E->getLocStart(), E->getSourceRange());
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index 1a36c7914ed1d41ab2162e2359e5d94b2999582f..ebd160b2e616b800403fc1388056c5f114451aa2 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -1610,7 +1610,7 @@ void CodeGenFunction::EmitStoreThroughGlobalRegLValue(RValue Src, LValue Dst) {
   Builder.CreateCall2(F, RegName, Value);
 }
 
-// setObjCGCLValueClass - sets class of he lvalue for the purpose of
+// setObjCGCLValueClass - sets class of the lvalue for the purpose of
 // generating write-barries API. It is currently a global, ivar,
 // or neither.
 static void setObjCGCLValueClass(const ASTContext &Ctx, const Expr *E,
diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp
index 6ece0a53c718a19b8927b7ad2e9f0196d54b6168..dd0721ad4b3bcdeefd3058cd2b85607b6f483234 100644
--- a/lib/Sema/SemaObjCProperty.cpp
+++ b/lib/Sema/SemaObjCProperty.cpp
@@ -1677,7 +1677,7 @@ void Sema::DiagnoseUnimplementedProperties(Scope *S, ObjCImplDecl* IMPDecl,
       // Lazily construct a set of all the properties in the @interface
       // of the class, without looking at the superclass.  We cannot
       // use the call to CollectImmediateProperties() above as that
-      // utilizes information fromt he super class's properties as well
+      // utilizes information from the super class's properties as well
       // as scans the adopted protocols.  This work only triggers for protocols
       // with the attribute, which is very rare, and only occurs when
       // analyzing the @implementation.
diff --git a/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp b/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
index 5106b06ca88c2c5d36e157fa67565bb347ff5ad3..a61e658f69c9afcbf1b1dcbaaf0d69b046ab1bd4 100644
--- a/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
+++ b/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
@@ -47,7 +47,7 @@ void WalkAST::VisitUnaryExprOrTypeTraitExpr(UnaryExprOrTypeTraitExpr *E) {
   if (E->getKind() != UETT_SizeOf)
     return;
 
-  // If an explicit type is used in the code, usually the coder knows what he is
+  // If an explicit type is used in the code, usually the coder knows what they are
   // doing.
   if (E->isArgumentType())
     return;
diff --git a/test/Analysis/misc-ps-region-store.m b/test/Analysis/misc-ps-region-store.m
index b048f8c47b2e665b340994169b6b9199837f1089..7c0b780f374c9f10dfd0d0b993c7d7a4192074d7 100644
--- a/test/Analysis/misc-ps-region-store.m
+++ b/test/Analysis/misc-ps-region-store.m
@@ -1362,5 +1362,5 @@ int rdar11125868() {
 int rdar11125868_positive() {
   int integersStackArray[1];
   int *integers = integersStackArray;
-  return integers[0] == 0; // expected-warning {{he left operand of '==' is a}}
+  return integers[0] == 0; // expected-warning {{the left operand of '==' is a}}
 }
diff --git a/test/CXX/except/except.spec/p11.cpp b/test/CXX/except/except.spec/p11.cpp
index 1f6bf2131cd6bc96f19b045efd69e7f0d8dfb22b..1d0a647fb4f49d1c30beb72ce3019e4ba4f12ab6 100644
--- a/test/CXX/except/except.spec/p11.cpp
+++ b/test/CXX/except/except.spec/p11.cpp
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 -std=c++11 -fexceptions -fcxx-exceptions -fsyntax-only -verify %s
 // expected-no-diagnostics
 
-// This is the "let the user shoot himself in the foot" clause.
+// This is the "let the user shoot themselves in the foot" clause.
 void f() noexcept {
   throw 0; // no-error
 }