diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index fe96db9..99babd5 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -7483,7 +7483,7 @@
     const Expr *Source = E->getSourceExpr();
     if (!Source)
       return Error(E);
-    if (Source == E) { // sanity checking.
+    if (Source == E) {
       assert(0 && "OpaqueValueExpr recursively refers to itself");
       return Error(E);
     }
diff --git a/lib/StaticAnalyzer/Core/CoreEngine.cpp b/lib/StaticAnalyzer/Core/CoreEngine.cpp
index bc939d2..d57bab1 100644
--- a/lib/StaticAnalyzer/Core/CoreEngine.cpp
+++ b/lib/StaticAnalyzer/Core/CoreEngine.cpp
@@ -686,8 +686,8 @@
   assert(Src->succ_rbegin() != Src->succ_rend());
   CFGBlock *DefaultBlock = *Src->succ_rbegin();
 
-  // Sanity check for default blocks that are unreachable and not caught
-  // by earlier stages.
+  // Basic correctness check for default blocks that are unreachable and not
+  // caught by earlier stages.
   if (!DefaultBlock)
     return nullptr;
 
diff --git a/utils/TableGen/ASTTableGen.cpp b/utils/TableGen/ASTTableGen.cpp
index 3f6da40..6aa8b28 100644
--- a/utils/TableGen/ASTTableGen.cpp
+++ b/utils/TableGen/ASTTableGen.cpp
@@ -107,7 +107,7 @@
 static void visitHierarchy(RecordKeeper &records,
                            StringRef nodeClassName,
                            ASTNodeHierarchyVisitor<ASTNode> visit) {
-  // Check for the node class, just as a sanity check.
+  // Check for the node class, just as a basic correctness check.
   if (!records.getClass(nodeClassName)) {
     PrintFatalError(Twine("cannot find definition for node class ")
                       + nodeClassName);
diff --git a/utils/check_cfc/check_cfc.py b/utils/check_cfc/check_cfc.py
index 311f502..cab33b4 100755
--- a/utils/check_cfc/check_cfc.py
+++ b/utils/check_cfc/check_cfc.py
@@ -339,7 +339,7 @@
     # Prevent infinite loop if called with absolute path.
     arguments_a[0] = os.path.basename(arguments_a[0])
 
-    # Sanity check
+    # Basic correctness check
     enabled_checks = [check_name
                       for check_name in checks
                       if config.getboolean('Checks', check_name)]
