diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp
index ae4cef9..0483552 100644
--- a/lib/Sema/SemaDeclAttr.cpp
+++ b/lib/Sema/SemaDeclAttr.cpp
@@ -274,16 +274,16 @@
 
 /// \brief Thread Safety Analysis: Checks that the passed in RecordType
 /// resolves to a lockable object. May flag an error.
-bool checkForLockableRecord(Sema &S, Decl *D, const AttributeList &Attr,
-                            const RecordType *RT) {
+static bool checkForLockableRecord(Sema &S, Decl *D, const AttributeList &Attr,
+                                   const RecordType *RT) {
   // Flag error if could not get record type for this argument.
-  if(!RT) {
+  if (!RT) {
     S.Diag(Attr.getLoc(), diag::err_attribute_argument_not_class)
       << Attr.getName();
     return false;
   }
   // Flag error if the type is not lockable.
-  if(!RT->getDecl()->getAttr<LockableAttr>()) {
+  if (!RT->getDecl()->getAttr<LockableAttr>()) {
     S.Diag(Attr.getLoc(), diag::err_attribute_argument_not_lockable)
       << Attr.getName();
     return false;
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 91cc7a9..800f8e3 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -5978,8 +5978,6 @@
       if (!checkArithmeticOpPointerOperand(*this, Loc, PExp))
         return QualType();
 
-      QualType PointeeTy = PExp->getType()->getPointeeType();
-
       // Diagnose bad cases where we step over interface counts.
       if (!checkArithmethicPointerOnNonFragileABI(*this, Loc, PExp))
         return QualType();
@@ -6210,8 +6208,6 @@
 /// If two different enums are compared, raise a warning.
 static void checkEnumComparison(Sema &S, SourceLocation Loc, ExprResult &lex,
                                 ExprResult &rex) {
-  QualType lType = lex.get()->getType();
-  QualType rType = rex.get()->getType();
   QualType LHSStrippedType = lex.get()->IgnoreParenImpCasts()->getType();
   QualType RHSStrippedType = rex.get()->IgnoreParenImpCasts()->getType();
 
diff --git a/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
index 37a0bf9..cf06f54 100644
--- a/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
@@ -3557,7 +3557,7 @@
   Out << '}';
 }
 
-bool UsesAutorelease(const ProgramState *state) {
+static bool UsesAutorelease(const ProgramState *state) {
   // A state uses autorelease if it allocated an autorelease pool or if it has
   // objects in the caller's autorelease pool.
   return !state->get<AutoreleaseStack>().isEmpty() ||
