From ac58acc7f25239a1d9ef45a97aa4a395ef714748 Mon Sep 17 00:00:00 2001
From: Alexander Kornienko <alexfh@google.com>
Date: Mon, 22 Jun 2015 09:47:44 +0000
Subject: [PATCH] Fixed/added namespace ending comments using clang-tidy. NFC

The patch is generated using this command:

  $ tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
      -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \
      work/llvm/tools/clang

To reduce churn, not touching namespaces spanning less than 10 lines.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240270 91177308-0d34-0410-b5e6-96231b3b80d8
---
 .../PrintFunctionNames/PrintFunctionNames.cpp |  2 +-
 include/clang/ARCMigrate/ARCMTActions.h       |  4 +--
 include/clang/AST/ASTImporter.h               |  2 +-
 include/clang/AST/ASTLambda.h                 |  2 +-
 include/clang/AST/ASTVector.h                 |  2 +-
 include/clang/AST/BaseSubobject.h             |  2 +-
 include/clang/AST/CanonicalType.h             |  2 +-
 include/clang/AST/DeclAccessPair.h            |  2 +-
 include/clang/AST/DeclBase.h                  |  4 +--
 include/clang/AST/DeclFriend.h                |  2 +-
 include/clang/AST/DeclGroup.h                 |  4 +--
 include/clang/AST/DependentDiagnostic.h       |  2 +-
 include/clang/AST/EvaluatedExprVisitor.h      |  2 +-
 include/clang/AST/ExternalASTSource.h         |  2 +-
 include/clang/AST/Mangle.h                    |  2 +-
 include/clang/AST/NestedNameSpecifier.h       |  2 +-
 include/clang/AST/OperationKinds.h            |  2 +-
 include/clang/AST/ParentMap.h                 |  2 +-
 include/clang/AST/Redeclarable.h              |  2 +-
 include/clang/AST/Type.h                      |  4 +--
 include/clang/AST/TypeLoc.h                   |  2 +-
 include/clang/AST/TypeOrdering.h              |  2 +-
 include/clang/AST/VTTBuilder.h                |  2 +-
 .../Analyses/CFGReachabilityAnalysis.h        |  2 +-
 include/clang/Analysis/Analyses/Consumed.h    |  3 ++-
 .../clang/Analysis/Analyses/FormatString.h    | 10 +++----
 .../Analysis/Analyses/PostOrderCFGView.h      |  2 +-
 .../Analyses/PseudoConstantAnalysis.h         |  2 +-
 .../clang/Analysis/Analyses/ReachableCode.h   |  3 ++-
 .../clang/Analysis/Analyses/ThreadSafety.h    |  3 ++-
 .../Analysis/Analyses/ThreadSafetyLogical.h   |  6 ++---
 .../Analysis/Analyses/UninitializedValues.h   |  2 +-
 include/clang/Analysis/AnalysisContext.h      |  2 +-
 include/clang/Analysis/CFG.h                  |  2 +-
 include/clang/Analysis/CFGStmtMap.h           |  2 +-
 include/clang/Analysis/CallGraph.h            |  4 +--
 include/clang/Analysis/CodeInjector.h         |  2 +-
 .../DomainSpecific/CocoaConventions.h         |  3 ++-
 .../Analysis/DomainSpecific/ObjCNoReturn.h    |  2 +-
 include/clang/Analysis/Support/BumpVector.h   |  2 +-
 include/clang/Basic/AddressSpaces.h           |  4 +--
 include/clang/Basic/Builtins.h                |  2 +-
 include/clang/Basic/DiagnosticIDs.h           |  2 +-
 include/clang/Basic/LLVM.h                    |  2 +-
 include/clang/Basic/OpenMPKinds.h             |  2 +-
 include/clang/Basic/OperatorPrecedence.h      |  2 +-
 include/clang/Basic/PlistSupport.h            |  4 +--
 include/clang/Basic/PrettyStackTrace.h        |  2 +-
 include/clang/Basic/Sanitizers.h              |  2 +-
 include/clang/Basic/SourceManager.h           |  2 +-
 include/clang/Basic/TemplateKinds.h           |  2 +-
 include/clang/Basic/TypeTraits.h              |  2 +-
 include/clang/Basic/Version.h                 |  2 +-
 include/clang/Basic/Visibility.h              |  2 +-
 include/clang/CodeGen/BackendUtil.h           |  2 +-
 include/clang/CodeGen/CodeGenAction.h         |  2 +-
 include/clang/CodeGen/ModuleBuilder.h         |  2 +-
 include/clang/Driver/Multilib.h               |  4 +--
 include/clang/Driver/Options.h                |  6 ++---
 include/clang/Edit/Commit.h                   |  2 +-
 include/clang/Edit/EditedSource.h             |  2 +-
 include/clang/Edit/EditsReceiver.h            |  2 +-
 include/clang/Edit/FileOffset.h               |  2 +-
 include/clang/Edit/Rewriters.h                |  2 +-
 include/clang/Frontend/ASTConsumers.h         |  2 +-
 .../Frontend/ChainedDiagnosticConsumer.h      |  2 +-
 include/clang/Frontend/CommandLineSourceLoc.h |  6 ++---
 include/clang/Frontend/DiagnosticRenderer.h   |  2 +-
 include/clang/Frontend/FrontendOptions.h      |  2 +-
 include/clang/Frontend/LangStandard.h         |  2 +-
 include/clang/Frontend/LayoutOverrideSource.h |  2 +-
 include/clang/Frontend/MigratorOptions.h      |  2 +-
 .../Frontend/SerializedDiagnosticPrinter.h    |  4 +--
 .../Frontend/SerializedDiagnosticReader.h     |  4 +--
 .../clang/Frontend/SerializedDiagnostics.h    |  4 +--
 include/clang/Frontend/TextDiagnosticBuffer.h |  2 +-
 .../clang/Frontend/VerifyDiagnosticConsumer.h |  2 +-
 include/clang/Lex/CodeCompletionHandler.h     |  2 +-
 .../clang/Lex/ExternalPreprocessorSource.h    |  2 +-
 include/clang/Lex/HeaderSearchOptions.h       |  2 +-
 include/clang/Lex/ModuleLoader.h              |  2 +-
 include/clang/Lex/ModuleMap.h                 |  2 +-
 include/clang/Lex/TokenConcatenation.h        |  2 +-
 include/clang/Rewrite/Core/HTMLRewrite.h      |  4 +--
 include/clang/Rewrite/Frontend/ASTConsumers.h |  2 +-
 .../clang/Rewrite/Frontend/FixItRewriter.h    |  2 +-
 include/clang/Sema/AnalysisBasedWarnings.h    |  3 ++-
 include/clang/Sema/DelayedDiagnostic.h        |  4 +--
 include/clang/Sema/Lookup.h                   |  2 +-
 include/clang/Sema/ObjCMethodList.h           |  2 +-
 include/clang/Sema/Ownership.h                |  6 ++---
 include/clang/Sema/ParsedTemplate.h           |  2 +-
 include/clang/Sema/PrettyDeclStackTrace.h     |  2 +-
 include/clang/Sema/Sema.h                     |  2 +-
 include/clang/Sema/SemaConsumer.h             |  2 +-
 include/clang/Sema/SemaFixItUtils.h           |  2 +-
 include/clang/Sema/SemaLambda.h               |  2 +-
 include/clang/Sema/Template.h                 |  2 +-
 include/clang/Sema/TypoCorrection.h           |  2 +-
 include/clang/Serialization/ASTBitCodes.h     |  2 +-
 .../ASTDeserializationListener.h              |  2 +-
 .../clang/Serialization/ContinuousRangeMap.h  |  2 +-
 .../clang/Serialization/GlobalModuleIndex.h   |  2 +-
 include/clang/Serialization/ModuleManager.h   |  3 ++-
 .../StaticAnalyzer/Checkers/ObjCRetainCount.h |  4 ++-
 .../StaticAnalyzer/Core/AnalyzerOptions.h     |  2 +-
 .../Core/BugReporter/BugReporter.h            | 10 +++----
 .../Core/BugReporter/BugReporterVisitor.h     |  4 +--
 .../StaticAnalyzer/Core/BugReporter/BugType.h |  4 +--
 .../Core/BugReporter/PathDiagnostic.h         |  4 +--
 include/clang/StaticAnalyzer/Core/Checker.h   |  8 +++---
 .../StaticAnalyzer/Core/CheckerManager.h      |  4 +--
 .../Core/PathDiagnosticConsumers.h            |  4 +--
 .../Core/PathSensitive/APSIntType.h           |  4 +--
 .../Core/PathSensitive/AnalysisManager.h      |  4 +--
 .../Core/PathSensitive/BasicValueFactory.h    |  4 +--
 .../Core/PathSensitive/BlockCounter.h         |  4 +--
 .../Core/PathSensitive/CallEvent.h            |  2 +-
 .../Core/PathSensitive/CheckerContext.h       |  4 +--
 .../Core/PathSensitive/CheckerHelpers.h       |  4 +--
 .../Core/PathSensitive/ConstraintManager.h    |  4 +--
 .../Core/PathSensitive/CoreEngine.h           |  4 +--
 .../Core/PathSensitive/DynamicTypeInfo.h      |  4 +--
 .../Core/PathSensitive/Environment.h          |  4 +--
 .../Core/PathSensitive/ExplodedGraph.h        |  6 ++---
 .../Core/PathSensitive/ExprEngine.h           |  4 +--
 .../Core/PathSensitive/FunctionSummary.h      |  3 ++-
 .../Core/PathSensitive/MemRegion.h            |  4 +--
 .../Core/PathSensitive/ProgramState.h         |  4 +--
 .../Core/PathSensitive/ProgramStateTrait.h    |  4 +--
 .../Core/PathSensitive/SValBuilder.h          |  4 +--
 .../StaticAnalyzer/Core/PathSensitive/SVals.h | 10 +++----
 .../StaticAnalyzer/Core/PathSensitive/Store.h |  4 +--
 .../Core/PathSensitive/StoreRef.h             |  3 ++-
 .../Core/PathSensitive/SubEngine.h            |  4 +--
 .../Core/PathSensitive/SymbolManager.h        |  4 +--
 .../Core/PathSensitive/TaintManager.h         |  4 +--
 .../Core/PathSensitive/WorkList.h             |  4 +--
 .../Frontend/AnalysisConsumer.h               |  4 +--
 .../StaticAnalyzer/Frontend/FrontendActions.h |  2 +-
 .../StaticAnalyzer/Frontend/ModelConsumer.h   |  4 +--
 lib/ARCMigrate/ObjCMT.cpp                     | 10 +++----
 lib/ARCMigrate/TransAutoreleasePool.cpp       |  2 +-
 lib/ARCMigrate/Transforms.cpp                 |  2 +-
 lib/AST/ASTDumper.cpp                         |  2 +-
 lib/AST/ASTImporter.cpp                       |  4 +--
 lib/AST/CXXABI.h                              |  2 +-
 lib/AST/CXXInheritance.cpp                    |  2 +-
 lib/AST/Decl.cpp                              |  2 +-
 lib/AST/DeclObjC.cpp                          |  2 +-
 lib/AST/DeclPrinter.cpp                       |  2 +-
 lib/AST/Expr.cpp                              |  6 ++---
 lib/AST/ExprConstant.cpp                      | 16 ++++++------
 lib/AST/ItaniumCXXABI.cpp                     |  2 +-
 lib/AST/ItaniumMangle.cpp                     |  2 +-
 lib/AST/MicrosoftCXXABI.cpp                   |  2 +-
 lib/AST/MicrosoftMangle.cpp                   |  2 +-
 lib/AST/NestedNameSpecifier.cpp               |  4 +--
 lib/AST/Stmt.cpp                              |  4 +--
 lib/AST/StmtPrinter.cpp                       |  4 +--
 lib/AST/StmtProfile.cpp                       |  4 +--
 lib/AST/Type.cpp                              |  6 ++---
 lib/AST/TypeLoc.cpp                           | 10 +++----
 lib/AST/TypePrinter.cpp                       |  2 +-
 lib/AST/VTableBuilder.cpp                     |  2 +-
 lib/Analysis/BodyFarm.cpp                     |  2 +-
 lib/Analysis/BodyFarm.h                       |  2 +-
 lib/Analysis/CallGraph.cpp                    |  2 +-
 lib/Analysis/Consumed.cpp                     |  6 +++--
 lib/Analysis/FormatStringParsing.h            |  4 +--
 lib/Analysis/LiveVariables.cpp                |  8 +++---
 lib/Analysis/ReachableCode.cpp                |  5 ++--
 lib/Analysis/ThreadSafetyLogical.cpp          |  2 +-
 lib/Analysis/UninitializedValues.cpp          | 10 +++----
 lib/Basic/DiagnosticIDs.cpp                   | 10 +++----
 lib/Basic/IdentifierTable.cpp                 |  2 +-
 lib/Basic/VirtualFileSystem.cpp               |  4 +--
 lib/CodeGen/BackendUtil.cpp                   |  2 +-
 lib/CodeGen/CGAtomic.cpp                      |  2 +-
 lib/CodeGen/CGBlocks.cpp                      |  4 +--
 lib/CodeGen/CGBlocks.h                        |  2 +-
 lib/CodeGen/CGCUDANV.cpp                      |  2 +-
 lib/CodeGen/CGCUDARuntime.h                   |  4 +--
 lib/CodeGen/CGCXXABI.h                        |  4 +--
 lib/CodeGen/CGCall.cpp                        |  2 +-
 lib/CodeGen/CGClass.cpp                       | 12 ++++-----
 lib/CodeGen/CGCleanup.h                       |  4 +--
 lib/CodeGen/CGDecl.cpp                        |  6 ++---
 lib/CodeGen/CGException.cpp                   | 10 +++----
 lib/CodeGen/CGExpr.cpp                        |  2 +-
 lib/CodeGen/CGExprCXX.cpp                     |  6 ++---
 lib/CodeGen/CGExprConstant.cpp                |  2 +-
 lib/CodeGen/CGObjC.cpp                        | 10 +++----
 lib/CodeGen/CGObjCMac.cpp                     |  2 +-
 lib/CodeGen/CGObjCRuntime.cpp                 |  4 +--
 lib/CodeGen/CGObjCRuntime.h                   |  4 +--
 lib/CodeGen/CGOpenCLRuntime.h                 |  4 +--
 lib/CodeGen/CGRecordLayoutBuilder.cpp         |  2 +-
 lib/CodeGen/CodeGenAction.cpp                 |  2 +-
 lib/CodeGen/CodeGenModule.cpp                 |  2 +-
 lib/CodeGen/CodeGenModule.h                   |  2 +-
 lib/CodeGen/CodeGenPGO.cpp                    |  2 +-
 lib/CodeGen/CoverageMappingGen.cpp            |  2 +-
 lib/CodeGen/ItaniumCXXABI.cpp                 |  8 +++---
 lib/CodeGen/MicrosoftCXXABI.cpp               |  4 +--
 lib/CodeGen/ModuleBuilder.cpp                 |  2 +-
 lib/CodeGen/TargetInfo.cpp                    | 26 +++++++++----------
 lib/CodeGen/TargetInfo.h                      |  2 +-
 lib/Driver/Tools.cpp                          |  2 +-
 lib/Driver/Tools.h                            | 12 ++++-----
 lib/Format/Format.cpp                         |  4 +--
 lib/Frontend/ASTConsumers.cpp                 |  2 +-
 lib/Frontend/ASTUnit.cpp                      |  6 ++---
 lib/Frontend/ChainedIncludesSource.cpp        |  2 +-
 lib/Frontend/CompilerInvocation.cpp           |  2 +-
 lib/Frontend/DependencyFile.cpp               |  2 +-
 lib/Frontend/DependencyGraph.cpp              |  2 +-
 lib/Frontend/DiagnosticRenderer.cpp           |  2 +-
 lib/Frontend/FrontendActions.cpp              |  2 +-
 lib/Frontend/HeaderIncludeGen.cpp             |  2 +-
 lib/Frontend/ModuleDependencyCollector.cpp    |  2 +-
 lib/Frontend/Rewrite/FixItRewriter.cpp        |  2 +-
 lib/Frontend/Rewrite/HTMLPrint.cpp            |  2 +-
 lib/Frontend/Rewrite/RewriteModernObjC.cpp    |  2 +-
 lib/Frontend/Rewrite/RewriteObjC.cpp          |  2 +-
 lib/Frontend/SerializedDiagnosticReader.cpp   |  2 +-
 lib/Frontend/VerifyDiagnosticConsumer.cpp     |  2 +-
 lib/Lex/ModuleMap.cpp                         |  4 +--
 lib/Lex/PPExpressions.cpp                     |  2 +-
 lib/Lex/PTHLexer.cpp                          |  2 +-
 lib/Lex/Pragma.cpp                            |  2 +-
 lib/Lex/PreprocessingRecord.cpp               |  2 +-
 lib/Parse/ParseExpr.cpp                       |  2 +-
 lib/Parse/ParseStmt.cpp                       |  2 +-
 lib/Parse/ParseStmtAsm.cpp                    |  2 +-
 lib/Parse/ParseTentative.cpp                  |  2 +-
 lib/Rewrite/DeltaTree.cpp                     |  2 +-
 lib/Sema/AnalysisBasedWarnings.cpp            | 17 +++++++-----
 lib/Sema/SemaAccess.cpp                       |  4 +--
 lib/Sema/SemaCXXScopeSpec.cpp                 |  2 +-
 lib/Sema/SemaCast.cpp                         |  2 +-
 lib/Sema/SemaChecking.cpp                     | 14 +++++-----
 lib/Sema/SemaCodeComplete.cpp                 |  4 +--
 lib/Sema/SemaDecl.cpp                         |  8 +++---
 lib/Sema/SemaDeclCXX.cpp                      | 20 +++++++-------
 lib/Sema/SemaDeclObjC.cpp                     |  6 ++---
 lib/Sema/SemaExpr.cpp                         | 14 +++++-----
 lib/Sema/SemaExprCXX.cpp                      |  4 +--
 lib/Sema/SemaExprMember.cpp                   |  2 +-
 lib/Sema/SemaExprObjC.cpp                     |  4 +--
 lib/Sema/SemaInit.cpp                         |  2 +-
 lib/Sema/SemaLookup.cpp                       |  6 ++---
 lib/Sema/SemaOpenMP.cpp                       |  2 +-
 lib/Sema/SemaOverload.cpp                     | 12 ++++-----
 lib/Sema/SemaPseudoObject.cpp                 |  2 +-
 lib/Sema/SemaStmt.cpp                         | 12 ++++-----
 lib/Sema/SemaTemplate.cpp                     |  6 ++---
 lib/Sema/SemaTemplateDeduction.cpp            |  4 +--
 lib/Sema/SemaTemplateInstantiate.cpp          |  2 +-
 lib/Sema/SemaTemplateVariadic.cpp             |  4 +--
 lib/Sema/SemaType.cpp                         | 10 +++----
 lib/Sema/TypeLocBuilder.h                     |  2 +-
 lib/Serialization/ASTReader.cpp               | 21 ++++++++-------
 lib/Serialization/ASTReaderDecl.cpp           | 10 +++----
 lib/Serialization/ASTReaderInternals.h        |  4 +--
 lib/Serialization/ASTReaderStmt.cpp           |  4 +--
 lib/Serialization/ASTWriter.cpp               |  4 +--
 lib/Serialization/ASTWriterDecl.cpp           |  2 +-
 lib/Serialization/ASTWriterStmt.cpp           |  4 +--
 lib/Serialization/GlobalModuleIndex.cpp       | 12 ++++-----
 lib/Serialization/ModuleManager.cpp           |  2 +-
 .../Checkers/ArrayBoundCheckerV2.cpp          |  2 +-
 .../Checkers/BasicObjCFoundationChecks.cpp    | 10 +++----
 .../Checkers/CStringSyntaxChecker.cpp         |  2 +-
 .../Checkers/CheckObjCDealloc.cpp             |  2 +-
 .../Checkers/CheckSecuritySyntaxOnly.cpp      |  2 +-
 .../Checkers/CheckSizeofPointer.cpp           |  2 +-
 lib/StaticAnalyzer/Checkers/ClangSACheckers.h |  4 +--
 .../Checkers/DeadStoresChecker.cpp            |  4 +--
 lib/StaticAnalyzer/Checkers/DebugCheckers.cpp | 14 +++++-----
 .../Checkers/DirectIvarAssignment.cpp         |  2 +-
 .../Checkers/DynamicTypePropagation.cpp       |  2 +-
 .../Checkers/ExprInspectionChecker.cpp        |  2 +-
 .../Checkers/IvarInvalidationChecker.cpp      |  4 +--
 .../Checkers/LLVMConventionsChecker.cpp       |  2 +-
 .../Checkers/MacOSKeychainAPIChecker.cpp      |  2 +-
 .../MallocOverflowSecurityChecker.cpp         |  2 +-
 .../Checkers/MallocSizeofChecker.cpp          |  2 +-
 .../Checkers/NSErrorChecker.cpp               |  8 +++---
 .../Checkers/NoReturnFunctionChecker.cpp      |  2 +-
 .../Checkers/ObjCContainersASTChecker.cpp     |  2 +-
 .../Checkers/ObjCMissingSuperCallChecker.cpp  |  2 +-
 .../Checkers/RetainCountChecker.cpp           | 10 ++++---
 .../Checkers/ReturnUndefChecker.cpp           |  2 +-
 .../Checkers/StackAddrEscapeChecker.cpp       |  2 +-
 .../Checkers/TaintTesterChecker.cpp           |  2 +-
 .../Checkers/UndefBranchChecker.cpp           |  2 +-
 .../Checkers/UnreachableCodeChecker.cpp       |  2 +-
 .../Checkers/VirtualCallChecker.cpp           |  2 +-
 lib/StaticAnalyzer/Core/BasicValueFactory.cpp |  2 +-
 lib/StaticAnalyzer/Core/BlockCounter.cpp      |  2 +-
 lib/StaticAnalyzer/Core/BugReporter.cpp       |  2 +-
 lib/StaticAnalyzer/Core/CheckerManager.cpp    | 14 +++++-----
 lib/StaticAnalyzer/Core/ExprEngine.cpp        |  2 +-
 .../Core/PrettyStackTraceLocationContext.h    |  4 +--
 lib/StaticAnalyzer/Core/ProgramState.cpp      |  3 ++-
 lib/StaticAnalyzer/Core/RegionStore.cpp       | 10 +++----
 .../Core/SimpleConstraintManager.h            |  4 +--
 lib/StaticAnalyzer/Frontend/ModelInjector.h   |  4 +--
 lib/Tooling/Tooling.cpp                       |  4 +--
 tools/diagtool/DiagTool.h                     |  2 +-
 tools/diagtool/ListWarnings.cpp               |  2 +-
 tools/diagtool/ShowEnabledWarnings.cpp        |  2 +-
 tools/driver/cc1as_main.cpp                   |  2 +-
 tools/libclang/CIndex.cpp                     | 10 +++----
 tools/libclang/CIndexCodeCompletion.cpp       |  4 +--
 tools/libclang/CIndexDiagnostic.cpp           |  2 +-
 tools/libclang/CIndexer.h                     |  4 +--
 tools/libclang/CLog.h                         |  4 +--
 tools/libclang/CXCursor.cpp                   |  4 +--
 tools/libclang/CXCursor.h                     |  3 ++-
 tools/libclang/CXLoadedDiagnostic.cpp         |  4 +--
 tools/libclang/CXLoadedDiagnostic.h           |  2 +-
 tools/libclang/CXSourceLocation.h             |  3 ++-
 tools/libclang/CXString.h                     |  4 +--
 tools/libclang/CXTranslationUnit.h            |  3 ++-
 tools/libclang/CursorVisitor.h                |  4 +--
 tools/libclang/Indexing.cpp                   |  2 +-
 tools/libclang/IndexingContext.h              |  3 ++-
 unittests/AST/EvaluateAsRValueTest.cpp        |  2 +-
 unittests/Basic/DiagnosticTest.cpp            |  2 +-
 unittests/Basic/SourceManagerTest.cpp         |  2 +-
 unittests/Basic/VirtualFileSystemTest.cpp     |  2 +-
 unittests/CodeGen/BufferSourceTest.cpp        |  2 +-
 unittests/Format/FormatTestJS.cpp             |  2 +-
 unittests/Format/FormatTestJava.cpp           |  2 +-
 unittests/Format/FormatTestProto.cpp          |  2 +-
 unittests/Lex/PPCallbacksTest.cpp             |  2 +-
 .../Tooling/RefactoringCallbacksTest.cpp      |  2 +-
 unittests/Tooling/TestVisitor.h               |  2 +-
 unittests/libclang/LibclangTest.cpp           |  2 +-
 utils/TableGen/ClangAttrEmitter.cpp           |  2 +-
 utils/TableGen/NeonEmitter.cpp                |  2 +-
 utils/TableGen/TableGen.cpp                   |  2 +-
 344 files changed, 643 insertions(+), 619 deletions(-)

diff --git a/examples/PrintFunctionNames/PrintFunctionNames.cpp b/examples/PrintFunctionNames/PrintFunctionNames.cpp
index 9f8f6e3f050..7eb8e93cb7c 100644
--- a/examples/PrintFunctionNames/PrintFunctionNames.cpp
+++ b/examples/PrintFunctionNames/PrintFunctionNames.cpp
@@ -117,7 +117,7 @@ protected:
 
 };
 
-}
+} // namespace
 
 static FrontendPluginRegistry::Add<PrintFunctionNamesAction>
 X("print-fns", "print function names");
diff --git a/include/clang/ARCMigrate/ARCMTActions.h b/include/clang/ARCMigrate/ARCMTActions.h
index c830aa3d787..cfcf4e96288 100644
--- a/include/clang/ARCMigrate/ARCMTActions.h
+++ b/include/clang/ARCMigrate/ARCMTActions.h
@@ -70,7 +70,7 @@ protected:
   bool BeginInvocation(CompilerInstance &CI) override;
 };
 
-}
-}
+} // namespace arcmt
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/ASTImporter.h b/include/clang/AST/ASTImporter.h
index ee48955ca63..f215b1c3cfd 100644
--- a/include/clang/AST/ASTImporter.h
+++ b/include/clang/AST/ASTImporter.h
@@ -290,6 +290,6 @@ namespace clang {
     bool IsStructurallyEquivalent(QualType From, QualType To,
                                   bool Complain = true);
   };
-}
+} // namespace clang
 
 #endif // LLVM_CLANG_AST_ASTIMPORTER_H
diff --git a/include/clang/AST/ASTLambda.h b/include/clang/AST/ASTLambda.h
index 69df2d8c011..82294b11bc5 100644
--- a/include/clang/AST/ASTLambda.h
+++ b/include/clang/AST/ASTLambda.h
@@ -75,6 +75,6 @@ inline DeclContext *getLambdaAwareParentOfDeclContext(DeclContext *DC) {
     return DC->getParent();
 }
 
-} // clang
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/ASTVector.h b/include/clang/AST/ASTVector.h
index 6ec054582e2..cddb766a3b4 100644
--- a/include/clang/AST/ASTVector.h
+++ b/include/clang/AST/ASTVector.h
@@ -400,5 +400,5 @@ void ASTVector<T>::grow(const ASTContext &C, size_t MinSize) {
   Capacity.setPointer(Begin+NewCapacity);
 }
 
-} // end: clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/AST/BaseSubobject.h b/include/clang/AST/BaseSubobject.h
index da538e3566a..585d786ac6a 100644
--- a/include/clang/AST/BaseSubobject.h
+++ b/include/clang/AST/BaseSubobject.h
@@ -82,6 +82,6 @@ template <> struct isPodLike<clang::BaseSubobject> {
   static const bool value = true;
 };
 
-}
+} // namespace llvm
 
 #endif
diff --git a/include/clang/AST/CanonicalType.h b/include/clang/AST/CanonicalType.h
index b25800bfedb..4a25a06b447 100644
--- a/include/clang/AST/CanonicalType.h
+++ b/include/clang/AST/CanonicalType.h
@@ -659,7 +659,7 @@ CanProxy<Type> CanTypeIterator<InputIterator>::operator->() const {
   return CanProxy<Type>(*this);
 }
 
-}
+} // namespace clang
 
 
 #endif
diff --git a/include/clang/AST/DeclAccessPair.h b/include/clang/AST/DeclAccessPair.h
index 3c5056c6e55..3527a160aa8 100644
--- a/include/clang/AST/DeclAccessPair.h
+++ b/include/clang/AST/DeclAccessPair.h
@@ -59,7 +59,7 @@ public:
   operator NamedDecl*() const { return getDecl(); }
   NamedDecl *operator->() const { return getDecl(); }
 };
-}
+} // namespace clang
 
 // Take a moment to tell SmallVector that DeclAccessPair is POD.
 namespace llvm {
diff --git a/include/clang/AST/DeclBase.h b/include/clang/AST/DeclBase.h
index 6b6ac3f7d5a..316f8d16db5 100644
--- a/include/clang/AST/DeclBase.h
+++ b/include/clang/AST/DeclBase.h
@@ -54,7 +54,7 @@ class Stmt;
 class StoredDeclsMap;
 class TranslationUnitDecl;
 class UsingDirectiveDecl;
-}
+} // namespace clang
 
 namespace clang {
 
@@ -1799,7 +1799,7 @@ struct cast_convert_decl_context<ToTy, true> {
 };
 
 
-} // end clang.
+} // namespace clang
 
 namespace llvm {
 
diff --git a/include/clang/AST/DeclFriend.h b/include/clang/AST/DeclFriend.h
index 12b93b408a7..8a4105b2b1f 100644
--- a/include/clang/AST/DeclFriend.h
+++ b/include/clang/AST/DeclFriend.h
@@ -242,6 +242,6 @@ inline void CXXRecordDecl::pushFriendDecl(FriendDecl *FD) {
   data().FirstFriend = FD;
 }
   
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/DeclGroup.h b/include/clang/AST/DeclGroup.h
index bd3dbd8fa78..621ba9feb43 100644
--- a/include/clang/AST/DeclGroup.h
+++ b/include/clang/AST/DeclGroup.h
@@ -134,7 +134,7 @@ public:
   }
 };
 
-} // end clang namespace
+} // namespace clang
 
 namespace llvm {
   // DeclGroupRef is "like a pointer", implement PointerLikeTypeTraits.
@@ -151,5 +151,5 @@ namespace llvm {
     }
     enum { NumLowBitsAvailable = 0 };
   };
-}
+} // namespace llvm
 #endif
diff --git a/include/clang/AST/DependentDiagnostic.h b/include/clang/AST/DependentDiagnostic.h
index 8e038c83c98..df2ca7b5d88 100644
--- a/include/clang/AST/DependentDiagnostic.h
+++ b/include/clang/AST/DependentDiagnostic.h
@@ -184,6 +184,6 @@ inline DeclContext::ddiag_range DeclContext::ddiags() const {
   return ddiag_range(ddiag_iterator(Map->FirstDiagnostic), ddiag_iterator());
 }
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/EvaluatedExprVisitor.h b/include/clang/AST/EvaluatedExprVisitor.h
index 5cae5d9eca3..1a7a130d831 100644
--- a/include/clang/AST/EvaluatedExprVisitor.h
+++ b/include/clang/AST/EvaluatedExprVisitor.h
@@ -124,6 +124,6 @@ public:
     EvaluatedExprVisitorBase<make_const_ptr, ImplClass>(Context) { }
 };
 
-}
+} // namespace clang
 
 #endif // LLVM_CLANG_AST_EVALUATEDEXPRVISITOR_H
diff --git a/include/clang/AST/ExternalASTSource.h b/include/clang/AST/ExternalASTSource.h
index 9a760807621..2cb25d1ec61 100644
--- a/include/clang/AST/ExternalASTSource.h
+++ b/include/clang/AST/ExternalASTSource.h
@@ -467,7 +467,7 @@ struct PointerLikeTypeTraits<
     NumLowBitsAvailable = PointerLikeTypeTraits<T>::NumLowBitsAvailable - 1
   };
 };
-}
+} // namespace llvm
 
 namespace clang {
 /// \brief Represents a lazily-loaded vector of data.
diff --git a/include/clang/AST/Mangle.h b/include/clang/AST/Mangle.h
index c5a7ea16a7e..ba6755dcc68 100644
--- a/include/clang/AST/Mangle.h
+++ b/include/clang/AST/Mangle.h
@@ -240,6 +240,6 @@ public:
   static MicrosoftMangleContext *create(ASTContext &Context,
                                         DiagnosticsEngine &Diags);
 };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/NestedNameSpecifier.h b/include/clang/AST/NestedNameSpecifier.h
index 4da17b0c077..4f593e43a6f 100644
--- a/include/clang/AST/NestedNameSpecifier.h
+++ b/include/clang/AST/NestedNameSpecifier.h
@@ -510,6 +510,6 @@ inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
   return DB;
 }
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/OperationKinds.h b/include/clang/AST/OperationKinds.h
index e3f01266772..b01f05e4c12 100644
--- a/include/clang/AST/OperationKinds.h
+++ b/include/clang/AST/OperationKinds.h
@@ -350,6 +350,6 @@ enum ObjCBridgeCastKind {
   OBC_BridgeRetained
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/ParentMap.h b/include/clang/AST/ParentMap.h
index 8945c413d26..721e6efdce3 100644
--- a/include/clang/AST/ParentMap.h
+++ b/include/clang/AST/ParentMap.h
@@ -63,5 +63,5 @@ public:
   }
 };
 
-} // end clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/AST/Redeclarable.h b/include/clang/AST/Redeclarable.h
index 92046d582bf..e19af1b053f 100644
--- a/include/clang/AST/Redeclarable.h
+++ b/include/clang/AST/Redeclarable.h
@@ -272,6 +272,6 @@ public:
   bool isFirstDecl() const { return getFirstDecl() == this; }
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h
index d903b9d8cbc..5c76f3fdc36 100644
--- a/include/clang/AST/Type.h
+++ b/include/clang/AST/Type.h
@@ -67,7 +67,7 @@ namespace llvm {
 
   template <>
   struct isPodLike<clang::QualType> { static const bool value = true; };
-}
+} // namespace llvm
 
 namespace clang {
   class ASTContext;
@@ -1008,7 +1008,7 @@ private:
   static DestructionKind isDestructedTypeImpl(QualType type);
 };
 
-} // end clang.
+} // namespace clang
 
 namespace llvm {
 /// Implement simplify_type for QualType, so that we can dyn_cast from QualType
diff --git a/include/clang/AST/TypeLoc.h b/include/clang/AST/TypeLoc.h
index e29fa490328..932ee3f3bde 100644
--- a/include/clang/AST/TypeLoc.h
+++ b/include/clang/AST/TypeLoc.h
@@ -1952,6 +1952,6 @@ public:
 };
 
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/AST/TypeOrdering.h b/include/clang/AST/TypeOrdering.h
index 392e544d90c..865e135aa73 100644
--- a/include/clang/AST/TypeOrdering.h
+++ b/include/clang/AST/TypeOrdering.h
@@ -74,6 +74,6 @@ namespace llvm {
       return LHS == RHS;
     }
   };
-}
+} // namespace llvm
 
 #endif
diff --git a/include/clang/AST/VTTBuilder.h b/include/clang/AST/VTTBuilder.h
index 727bf5109ad..0ce2bc9fb23 100644
--- a/include/clang/AST/VTTBuilder.h
+++ b/include/clang/AST/VTTBuilder.h
@@ -157,6 +157,6 @@ public:
 
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h b/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
index cc14c7bd33d..830f1d8e2da 100644
--- a/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
+++ b/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h
@@ -44,6 +44,6 @@ private:
   void mapReachability(const CFGBlock *Dst);
 };
   
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/Analyses/Consumed.h b/include/clang/Analysis/Analyses/Consumed.h
index a7109233987..346cdb3120f 100644
--- a/include/clang/Analysis/Analyses/Consumed.h
+++ b/include/clang/Analysis/Analyses/Consumed.h
@@ -260,6 +260,7 @@ namespace consumed {
     /// exactly once.
     void run(AnalysisDeclContext &AC);
   };
-}} // end namespace clang::consumed
+} // namespace consumed
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/Analyses/FormatString.h b/include/clang/Analysis/Analyses/FormatString.h
index 2e8058dabda..f59b45a3340 100644
--- a/include/clang/Analysis/Analyses/FormatString.h
+++ b/include/clang/Analysis/Analyses/FormatString.h
@@ -393,7 +393,7 @@ public:
   static bool namedTypeToLengthModifier(QualType QT, LengthModifier &LM);
 };
 
-} // end analyze_format_string namespace
+} // namespace analyze_format_string
 
 //===----------------------------------------------------------------------===//
 /// Pieces specific to fprintf format strings.
@@ -529,7 +529,7 @@ public:
   bool hasValidPrecision() const;
   bool hasValidFieldWidth() const;
 };
-}  // end analyze_printf namespace
+} // namespace analyze_printf
 
 //===----------------------------------------------------------------------===//
 /// Pieces specific to fscanf format strings.
@@ -595,7 +595,7 @@ public:
   static ScanfSpecifier Parse(const char *beg, const char *end);
 };
 
-} // end analyze_scanf namespace
+} // namespace analyze_scanf
 
 //===----------------------------------------------------------------------===//
 // Parsing and processing of format strings (both fprintf and fscanf).
@@ -665,6 +665,6 @@ bool ParseScanfString(FormatStringHandler &H,
                       const char *beg, const char *end, const LangOptions &LO,
                       const TargetInfo &Target);
 
-} // end analyze_format_string namespace
-} // end clang namespace
+} // namespace analyze_format_string
+} // namespace clang
 #endif
diff --git a/include/clang/Analysis/Analyses/PostOrderCFGView.h b/include/clang/Analysis/Analyses/PostOrderCFGView.h
index a1c65042758..d4b8c8b9037 100644
--- a/include/clang/Analysis/Analyses/PostOrderCFGView.h
+++ b/include/clang/Analysis/Analyses/PostOrderCFGView.h
@@ -109,7 +109,7 @@ public:
   static PostOrderCFGView *create(AnalysisDeclContext &analysisContext);
 };
 
-} // end clang namespace
+} // namespace clang
 
 #endif
 
diff --git a/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h b/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
index c4ec2f22eca..b4addd2f0ea 100644
--- a/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
+++ b/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h
@@ -40,6 +40,6 @@ private:
   bool Analyzed;
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/Analyses/ReachableCode.h b/include/clang/Analysis/Analyses/ReachableCode.h
index 4c523bfc8b5..1dd02e5b951 100644
--- a/include/clang/Analysis/Analyses/ReachableCode.h
+++ b/include/clang/Analysis/Analyses/ReachableCode.h
@@ -64,6 +64,7 @@ unsigned ScanReachableFromBlock(const CFGBlock *Start,
 void FindUnreachableCode(AnalysisDeclContext &AC, Preprocessor &PP,
                          Callback &CB);
 
-}} // end namespace clang::reachable_code
+} // namespace reachable_code
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/Analyses/ThreadSafety.h b/include/clang/Analysis/Analyses/ThreadSafety.h
index 22694a7a225..c19e34ce077 100644
--- a/include/clang/Analysis/Analyses/ThreadSafety.h
+++ b/include/clang/Analysis/Analyses/ThreadSafety.h
@@ -222,5 +222,6 @@ void threadSafetyCleanup(BeforeSet *Cache);
 /// of access.
 LockKind getLockKindFromAccessKind(AccessKind AK);
 
-}} // end namespace clang::threadSafety
+} // namespace threadSafety
+} // namespace clang
 #endif
diff --git a/include/clang/Analysis/Analyses/ThreadSafetyLogical.h b/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
index bc78021343a..481568f20fd 100644
--- a/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
+++ b/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
@@ -100,9 +100,9 @@ bool LExpr::implies(const LExpr *RHS) const {
   return lexpr::implies(this, RHS);
 }
 
-}
-}
-}
+} // namespace lexpr
+} // namespace threadSafety
+} // namespace clang
 
 #endif
 
diff --git a/include/clang/Analysis/Analyses/UninitializedValues.h b/include/clang/Analysis/Analyses/UninitializedValues.h
index 53ff20c2356..794c108b1bf 100644
--- a/include/clang/Analysis/Analyses/UninitializedValues.h
+++ b/include/clang/Analysis/Analyses/UninitializedValues.h
@@ -122,5 +122,5 @@ void runUninitializedVariablesAnalysis(const DeclContext &dc, const CFG &cfg,
                                        UninitVariablesHandler &handler,
                                        UninitVariablesAnalysisStats &stats);
 
-}
+} // namespace clang
 #endif
diff --git a/include/clang/Analysis/AnalysisContext.h b/include/clang/Analysis/AnalysisContext.h
index 931190e43a6..99a93a87e35 100644
--- a/include/clang/Analysis/AnalysisContext.h
+++ b/include/clang/Analysis/AnalysisContext.h
@@ -476,5 +476,5 @@ private:
   }
 };
 
-} // end clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/Analysis/CFG.h b/include/clang/Analysis/CFG.h
index 5430c3bc6f2..bdedb4eca16 100644
--- a/include/clang/Analysis/CFG.h
+++ b/include/clang/Analysis/CFG.h
@@ -1109,5 +1109,5 @@ template <> struct GraphTraits<Inverse<const ::clang::CFG*> >
     return F->nodes_end();
   }
 };
-} // end llvm namespace
+} // namespace llvm
 #endif
diff --git a/include/clang/Analysis/CFGStmtMap.h b/include/clang/Analysis/CFGStmtMap.h
index 4dfa91df0f4..4a8ce9eb518 100644
--- a/include/clang/Analysis/CFGStmtMap.h
+++ b/include/clang/Analysis/CFGStmtMap.h
@@ -48,5 +48,5 @@ public:
   }
 };
 
-} // end clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/Analysis/CallGraph.h b/include/clang/Analysis/CallGraph.h
index eda22a57e8a..b8d923b8ec4 100644
--- a/include/clang/Analysis/CallGraph.h
+++ b/include/clang/Analysis/CallGraph.h
@@ -166,7 +166,7 @@ public:
   void dump() const;
 };
 
-} // end clang namespace
+} // namespace clang
 
 // Graph traits for iteration, viewing.
 namespace llvm {
@@ -248,6 +248,6 @@ template <> struct GraphTraits<const clang::CallGraph*> :
   }
 };
 
-} // end llvm namespace
+} // namespace llvm
 
 #endif
diff --git a/include/clang/Analysis/CodeInjector.h b/include/clang/Analysis/CodeInjector.h
index 413a55b05b0..1c590de4c0d 100644
--- a/include/clang/Analysis/CodeInjector.h
+++ b/include/clang/Analysis/CodeInjector.h
@@ -41,6 +41,6 @@ public:
   virtual Stmt *getBody(const FunctionDecl *D) = 0;
   virtual Stmt *getBody(const ObjCMethodDecl *D) = 0;
 };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/DomainSpecific/CocoaConventions.h b/include/clang/Analysis/DomainSpecific/CocoaConventions.h
index 8b3fcff52d0..6fac09d6581 100644
--- a/include/clang/Analysis/DomainSpecific/CocoaConventions.h
+++ b/include/clang/Analysis/DomainSpecific/CocoaConventions.h
@@ -37,6 +37,7 @@ namespace coreFoundation {
   bool followsCreateRule(const FunctionDecl *FD);
 }
 
-}} // end: "clang:ento"
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h b/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
index f9e800a4a41..4076c722374 100644
--- a/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
+++ b/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h
@@ -41,6 +41,6 @@ public:
   /// return.
   bool isImplicitNoReturn(const ObjCMessageExpr *ME);
 };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Analysis/Support/BumpVector.h b/include/clang/Analysis/Support/BumpVector.h
index 841adf64557..a39bef56c3b 100644
--- a/include/clang/Analysis/Support/BumpVector.h
+++ b/include/clang/Analysis/Support/BumpVector.h
@@ -240,5 +240,5 @@ void BumpVector<T>::grow(BumpVectorContext &C, size_t MinSize) {
   Capacity = Begin+NewCapacity;
 }
 
-} // end: clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/Basic/AddressSpaces.h b/include/clang/Basic/AddressSpaces.h
index 8dd75660c67..a90afdd1a1a 100644
--- a/include/clang/Basic/AddressSpaces.h
+++ b/include/clang/Basic/AddressSpaces.h
@@ -44,8 +44,8 @@ enum ID {
 /// to target-specific ones.
 typedef unsigned Map[Count];
 
-}
+} // namespace LangAS
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Basic/Builtins.h b/include/clang/Basic/Builtins.h
index 27428ad81cb..993e0b9f328 100644
--- a/include/clang/Basic/Builtins.h
+++ b/include/clang/Basic/Builtins.h
@@ -189,6 +189,6 @@ private:
               const char *Fmt) const;
 };
 
-}
+} // namespace Builtin
 } // end namespace clang
 #endif
diff --git a/include/clang/Basic/DiagnosticIDs.h b/include/clang/Basic/DiagnosticIDs.h
index a675dfabe46..2cff6715780 100644
--- a/include/clang/Basic/DiagnosticIDs.h
+++ b/include/clang/Basic/DiagnosticIDs.h
@@ -76,7 +76,7 @@ namespace clang {
       Remark          ///< A diagnostic that indicates normal progress through
                       ///< compilation.
     };
-  }
+  } // namespace diag
 
 class DiagnosticMapping {
   unsigned Severity : 3;
diff --git a/include/clang/Basic/LLVM.h b/include/clang/Basic/LLVM.h
index 0e6ff9259a1..0a4c96eb9e3 100644
--- a/include/clang/Basic/LLVM.h
+++ b/include/clang/Basic/LLVM.h
@@ -47,7 +47,7 @@ namespace llvm {
   class raw_ostream;
   class raw_pwrite_stream;
   // TODO: DenseMap, ...
-}
+} // namespace llvm
 
 
 namespace clang {
diff --git a/include/clang/Basic/OpenMPKinds.h b/include/clang/Basic/OpenMPKinds.h
index e2f115113e2..1808d866c43 100644
--- a/include/clang/Basic/OpenMPKinds.h
+++ b/include/clang/Basic/OpenMPKinds.h
@@ -117,7 +117,7 @@ bool isOpenMPPrivate(OpenMPClauseKind Kind);
 /// \return true - the clause is a threadprivate clause, otherwise - false.
 bool isOpenMPThreadPrivate(OpenMPClauseKind Kind);
 
-}
+} // namespace clang
 
 #endif
 
diff --git a/include/clang/Basic/OperatorPrecedence.h b/include/clang/Basic/OperatorPrecedence.h
index 640749fdd10..4ee6d353033 100644
--- a/include/clang/Basic/OperatorPrecedence.h
+++ b/include/clang/Basic/OperatorPrecedence.h
@@ -41,7 +41,7 @@ namespace prec {
     Multiplicative  = 13,   // *, /, %
     PointerToMember = 14    // .*, ->*
   };
-}
+} // namespace prec
 
 /// \brief Return the precedence of the specified binary operator token.
 prec::Level getBinOpPrecedence(tok::TokenKind Kind, bool GreaterThanIsOperator,
diff --git a/include/clang/Basic/PlistSupport.h b/include/clang/Basic/PlistSupport.h
index 84dd29138a8..9273c566212 100644
--- a/include/clang/Basic/PlistSupport.h
+++ b/include/clang/Basic/PlistSupport.h
@@ -113,7 +113,7 @@ inline void EmitRange(raw_ostream &o, const SourceManager &SM,
   EmitLocation(o, SM, R.getEnd(), FM, indent + 1);
   Indent(o, indent) << "</array>\n";
 }
-}
-}
+} // namespace markup
+} // namespace clang
 
 #endif
diff --git a/include/clang/Basic/PrettyStackTrace.h b/include/clang/Basic/PrettyStackTrace.h
index 6badae5c034..c01be4bb7f3 100644
--- a/include/clang/Basic/PrettyStackTrace.h
+++ b/include/clang/Basic/PrettyStackTrace.h
@@ -33,6 +33,6 @@ namespace clang {
       : SM(sm), Loc(L), Message(Msg) {}
     void print(raw_ostream &OS) const override;
   };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Basic/Sanitizers.h b/include/clang/Basic/Sanitizers.h
index 78c1ddb56f9..c249ad87a9b 100644
--- a/include/clang/Basic/Sanitizers.h
+++ b/include/clang/Basic/Sanitizers.h
@@ -44,7 +44,7 @@ enum SanitizerOrdinal : uint64_t {
   const SanitizerMask ID##Group = 1ULL << SO_##ID##Group;
 #include "clang/Basic/Sanitizers.def"
 
-}
+} // namespace SanitizerKind
 
 struct SanitizerSet {
   SanitizerSet();
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index 3aea5ea9825..288a271efcd 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -423,7 +423,7 @@ namespace SrcMgr {
       return E;
     }
   };
-}  // end SrcMgr namespace.
+} // namespace SrcMgr
 
 /// \brief External source of source location entries.
 class ExternalSLocEntrySource {
diff --git a/include/clang/Basic/TemplateKinds.h b/include/clang/Basic/TemplateKinds.h
index aed287b4622..7a4084f9279 100644
--- a/include/clang/Basic/TemplateKinds.h
+++ b/include/clang/Basic/TemplateKinds.h
@@ -38,7 +38,7 @@ enum TemplateNameKind {
   TNK_Dependent_template_name
 };
 
-}
+} // namespace clang
 #endif
 
 
diff --git a/include/clang/Basic/TypeTraits.h b/include/clang/Basic/TypeTraits.h
index ef84d2b1116..e3cfd8518ca 100644
--- a/include/clang/Basic/TypeTraits.h
+++ b/include/clang/Basic/TypeTraits.h
@@ -94,6 +94,6 @@ namespace clang {
     UETT_AlignOf,
     UETT_VecStep
   };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Basic/Version.h b/include/clang/Basic/Version.h
index 02da432a40d..744befe3434 100644
--- a/include/clang/Basic/Version.h
+++ b/include/clang/Basic/Version.h
@@ -77,6 +77,6 @@ namespace clang {
   /// for use in the CPP __VERSION__ macro, which includes the clang version
   /// number, the repository version, and the vendor tag.
   std::string getClangFullCPPVersion();
-}
+} // namespace clang
 
 #endif // LLVM_CLANG_BASIC_VERSION_H
diff --git a/include/clang/Basic/Visibility.h b/include/clang/Basic/Visibility.h
index 6ac52ed6b5e..ac992f08e86 100644
--- a/include/clang/Basic/Visibility.h
+++ b/include/clang/Basic/Visibility.h
@@ -136,6 +136,6 @@ public:
     if (withVis) mergeVisibility(other);
   }
 };
-}
+} // namespace clang
 
 #endif // LLVM_CLANG_BASIC_VISIBILITY_H
diff --git a/include/clang/CodeGen/BackendUtil.h b/include/clang/CodeGen/BackendUtil.h
index 8586e778894..3a3ac1f0d54 100644
--- a/include/clang/CodeGen/BackendUtil.h
+++ b/include/clang/CodeGen/BackendUtil.h
@@ -35,6 +35,6 @@ namespace clang {
                          const TargetOptions &TOpts, const LangOptions &LOpts,
                          StringRef TDesc, llvm::Module *M, BackendAction Action,
                          raw_pwrite_stream *OS);
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/CodeGen/CodeGenAction.h b/include/clang/CodeGen/CodeGenAction.h
index 264780d01ca..08ab634e073 100644
--- a/include/clang/CodeGen/CodeGenAction.h
+++ b/include/clang/CodeGen/CodeGenAction.h
@@ -98,6 +98,6 @@ public:
   EmitObjAction(llvm::LLVMContext *_VMContext = nullptr);
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/CodeGen/ModuleBuilder.h b/include/clang/CodeGen/ModuleBuilder.h
index 8facc3c8307..45570253774 100644
--- a/include/clang/CodeGen/ModuleBuilder.h
+++ b/include/clang/CodeGen/ModuleBuilder.h
@@ -45,6 +45,6 @@ namespace clang {
                                    const CodeGenOptions &CGO,
                                    llvm::LLVMContext& C,
                                    CoverageSourceInfo *CoverageInfo = nullptr);
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Driver/Multilib.h b/include/clang/Driver/Multilib.h
index 20bb80dca27..08331983255 100644
--- a/include/clang/Driver/Multilib.h
+++ b/include/clang/Driver/Multilib.h
@@ -168,8 +168,8 @@ private:
 };
 
 raw_ostream &operator<<(raw_ostream &OS, const MultilibSet &MS);
-}
-}
+} // namespace driver
+} // namespace clang
 
 #endif
 
diff --git a/include/clang/Driver/Options.h b/include/clang/Driver/Options.h
index 2716fa9ae85..c26592a5a95 100644
--- a/include/clang/Driver/Options.h
+++ b/include/clang/Driver/Options.h
@@ -42,10 +42,10 @@ enum ID {
     LastOption
 #undef OPTION
   };
-}
+} // namespace options
 
 llvm::opt::OptTable *createDriverOptTable();
-}
-}
+} // namespace driver
+} // namespace clang
 
 #endif
diff --git a/include/clang/Edit/Commit.h b/include/clang/Edit/Commit.h
index 5cc5b9c6ff8..f512ef2a252 100644
--- a/include/clang/Edit/Commit.h
+++ b/include/clang/Edit/Commit.h
@@ -142,7 +142,7 @@ private:
   }
 };
 
-}
+} // namespace edit
 
 } // end namespace clang
 
diff --git a/include/clang/Edit/EditedSource.h b/include/clang/Edit/EditedSource.h
index 150a5b41b5a..88905dc040c 100644
--- a/include/clang/Edit/EditedSource.h
+++ b/include/clang/Edit/EditedSource.h
@@ -82,7 +82,7 @@ private:
   FileEditsTy::iterator getActionForOffset(FileOffset Offs);
 };
 
-}
+} // namespace edit
 
 } // end namespace clang
 
diff --git a/include/clang/Edit/EditsReceiver.h b/include/clang/Edit/EditsReceiver.h
index 600ac28ea92..267c4b1c754 100644
--- a/include/clang/Edit/EditsReceiver.h
+++ b/include/clang/Edit/EditsReceiver.h
@@ -28,7 +28,7 @@ public:
   virtual void remove(CharSourceRange range);
 };
 
-}
+} // namespace edit
 
 } // end namespace clang
 
diff --git a/include/clang/Edit/FileOffset.h b/include/clang/Edit/FileOffset.h
index 0c1e72b84e5..c68c0c62420 100644
--- a/include/clang/Edit/FileOffset.h
+++ b/include/clang/Edit/FileOffset.h
@@ -54,7 +54,7 @@ public:
   }
 };
 
-}
+} // namespace edit
 
 } // end namespace clang
 
diff --git a/include/clang/Edit/Rewriters.h b/include/clang/Edit/Rewriters.h
index 5e3425f56f7..a41fc2d90c9 100644
--- a/include/clang/Edit/Rewriters.h
+++ b/include/clang/Edit/Rewriters.h
@@ -34,7 +34,7 @@ bool rewriteToObjCLiteralSyntax(const ObjCMessageExpr *Msg,
 bool rewriteToObjCSubscriptSyntax(const ObjCMessageExpr *Msg,
                                   const NSAPI &NS, Commit &commit);
 
-}
+} // namespace edit
 
 }  // end namespace clang
 
diff --git a/include/clang/Frontend/ASTConsumers.h b/include/clang/Frontend/ASTConsumers.h
index 757fcae988f..4c17cb6f62f 100644
--- a/include/clang/Frontend/ASTConsumers.h
+++ b/include/clang/Frontend/ASTConsumers.h
@@ -53,6 +53,6 @@ std::unique_ptr<ASTConsumer> CreateASTViewer();
 // to stderr; this is intended for debugging.
 std::unique_ptr<ASTConsumer> CreateDeclContextPrinter();
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/Frontend/ChainedDiagnosticConsumer.h b/include/clang/Frontend/ChainedDiagnosticConsumer.h
index eb33273c2fb..9c0c18122e6 100644
--- a/include/clang/Frontend/ChainedDiagnosticConsumer.h
+++ b/include/clang/Frontend/ChainedDiagnosticConsumer.h
@@ -67,6 +67,6 @@ public:
   }
 };
 
-} // end namspace clang
+} // namespace clang
 
 #endif
diff --git a/include/clang/Frontend/CommandLineSourceLoc.h b/include/clang/Frontend/CommandLineSourceLoc.h
index a78c96d23af..29756e79350 100644
--- a/include/clang/Frontend/CommandLineSourceLoc.h
+++ b/include/clang/Frontend/CommandLineSourceLoc.h
@@ -51,7 +51,7 @@ public:
   }
 };
 
-}
+} // namespace clang
 
 namespace llvm {
   namespace cl {
@@ -81,7 +81,7 @@ namespace llvm {
 
       return false;
     }
-  }
-}
+  } // namespace cl
+} // namespace llvm
 
 #endif
diff --git a/include/clang/Frontend/DiagnosticRenderer.h b/include/clang/Frontend/DiagnosticRenderer.h
index 84a0f50823b..142ecd40824 100644
--- a/include/clang/Frontend/DiagnosticRenderer.h
+++ b/include/clang/Frontend/DiagnosticRenderer.h
@@ -172,5 +172,5 @@ public:
   virtual void emitNote(SourceLocation Loc, StringRef Message,
                         const SourceManager *SM) = 0;
 };
-} // end clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/Frontend/FrontendOptions.h b/include/clang/Frontend/FrontendOptions.h
index c3aa226ea90..c59aff6b539 100644
--- a/include/clang/Frontend/FrontendOptions.h
+++ b/include/clang/Frontend/FrontendOptions.h
@@ -56,7 +56,7 @@ namespace frontend {
     MigrateSource,          ///< Run migrator.
     RunPreprocessorOnly     ///< Just lex, no output.
   };
-}
+} // namespace frontend
 
 enum InputKind {
   IK_None,
diff --git a/include/clang/Frontend/LangStandard.h b/include/clang/Frontend/LangStandard.h
index 8021d08942e..1e2841c7143 100644
--- a/include/clang/Frontend/LangStandard.h
+++ b/include/clang/Frontend/LangStandard.h
@@ -32,7 +32,7 @@ enum LangFeatures {
   ImplicitInt = (1 << 11)
 };
 
-}
+} // namespace frontend
 
 /// LangStandard - Information about the properties of a particular language
 /// standard.
diff --git a/include/clang/Frontend/LayoutOverrideSource.h b/include/clang/Frontend/LayoutOverrideSource.h
index 16d032b7dd7..167b4f2a602 100644
--- a/include/clang/Frontend/LayoutOverrideSource.h
+++ b/include/clang/Frontend/LayoutOverrideSource.h
@@ -58,6 +58,6 @@ namespace clang {
     /// \brief Dump the overridden layouts.
     void dump();
   };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Frontend/MigratorOptions.h b/include/clang/Frontend/MigratorOptions.h
index 8eb71b13f88..cb24a025dee 100644
--- a/include/clang/Frontend/MigratorOptions.h
+++ b/include/clang/Frontend/MigratorOptions.h
@@ -27,5 +27,5 @@ public:
   }
 };
 
-}
+} // namespace clang
 #endif
diff --git a/include/clang/Frontend/SerializedDiagnosticPrinter.h b/include/clang/Frontend/SerializedDiagnosticPrinter.h
index 4c57e9d404f..969bc6f8bc4 100644
--- a/include/clang/Frontend/SerializedDiagnosticPrinter.h
+++ b/include/clang/Frontend/SerializedDiagnosticPrinter.h
@@ -37,7 +37,7 @@ std::unique_ptr<DiagnosticConsumer> create(StringRef OutputFile,
                                            DiagnosticOptions *Diags,
                                            bool MergeChildRecords = false);
 
-} // end serialized_diags namespace
-} // end clang namespace
+} // namespace serialized_diags
+} // namespace clang
 
 #endif
diff --git a/include/clang/Frontend/SerializedDiagnosticReader.h b/include/clang/Frontend/SerializedDiagnosticReader.h
index 92e99d305da..320ac962723 100644
--- a/include/clang/Frontend/SerializedDiagnosticReader.h
+++ b/include/clang/Frontend/SerializedDiagnosticReader.h
@@ -120,8 +120,8 @@ protected:
   };
 };
 
-} // end serialized_diags namespace
-} // end clang namespace
+} // namespace serialized_diags
+} // namespace clang
 
 namespace std {
 template <>
diff --git a/include/clang/Frontend/SerializedDiagnostics.h b/include/clang/Frontend/SerializedDiagnostics.h
index 2032cd3988d..e614f45c8cb 100644
--- a/include/clang/Frontend/SerializedDiagnostics.h
+++ b/include/clang/Frontend/SerializedDiagnostics.h
@@ -53,7 +53,7 @@ enum Level {
 /// \brief The serialized diagnostics version number.
 enum { VersionNumber = 2 };
 
-} // end serialized_diags namespace
-} // end clang namespace
+} // namespace serialized_diags
+} // namespace clang
 
 #endif
diff --git a/include/clang/Frontend/TextDiagnosticBuffer.h b/include/clang/Frontend/TextDiagnosticBuffer.h
index 3bcf824455e..e733768a608 100644
--- a/include/clang/Frontend/TextDiagnosticBuffer.h
+++ b/include/clang/Frontend/TextDiagnosticBuffer.h
@@ -50,6 +50,6 @@ public:
   void FlushDiagnostics(DiagnosticsEngine &Diags) const;
 };
 
-} // end namspace clang
+} // namespace clang
 
 #endif
diff --git a/include/clang/Frontend/VerifyDiagnosticConsumer.h b/include/clang/Frontend/VerifyDiagnosticConsumer.h
index 475f07f9dc0..a49122114fc 100644
--- a/include/clang/Frontend/VerifyDiagnosticConsumer.h
+++ b/include/clang/Frontend/VerifyDiagnosticConsumer.h
@@ -273,6 +273,6 @@ public:
                         const Diagnostic &Info) override;
 };
 
-} // end namspace clang
+} // namespace clang
 
 #endif
diff --git a/include/clang/Lex/CodeCompletionHandler.h b/include/clang/Lex/CodeCompletionHandler.h
index 91c3b7811f0..67aedacdd1e 100644
--- a/include/clang/Lex/CodeCompletionHandler.h
+++ b/include/clang/Lex/CodeCompletionHandler.h
@@ -66,6 +66,6 @@ public:
   virtual void CodeCompleteNaturalLanguage() { }
 };
   
-}
+} // namespace clang
 
 #endif // LLVM_CLANG_LEX_CODECOMPLETIONHANDLER_H
diff --git a/include/clang/Lex/ExternalPreprocessorSource.h b/include/clang/Lex/ExternalPreprocessorSource.h
index 33e7a2d84b8..e23a791a02e 100644
--- a/include/clang/Lex/ExternalPreprocessorSource.h
+++ b/include/clang/Lex/ExternalPreprocessorSource.h
@@ -38,6 +38,6 @@ public:
   virtual Module *getModule(unsigned ModuleID) = 0;
 };
   
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Lex/HeaderSearchOptions.h b/include/clang/Lex/HeaderSearchOptions.h
index c9c32609f19..7b5766ce481 100644
--- a/include/clang/Lex/HeaderSearchOptions.h
+++ b/include/clang/Lex/HeaderSearchOptions.h
@@ -38,7 +38,7 @@ namespace frontend {
     ObjCXXSystem,   ///< Like System, but only used for ObjC++.
     After           ///< Like System, but searched after the system directories.
   };
-}
+} // namespace frontend
 
 /// HeaderSearchOptions - Helper class for storing options related to the
 /// initialization of the HeaderSearch object.
diff --git a/include/clang/Lex/ModuleLoader.h b/include/clang/Lex/ModuleLoader.h
index ae79650d1fd..cd3dda1ad36 100644
--- a/include/clang/Lex/ModuleLoader.h
+++ b/include/clang/Lex/ModuleLoader.h
@@ -124,6 +124,6 @@ public:
   bool HadFatalFailure;
 };
   
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Lex/ModuleMap.h b/include/clang/Lex/ModuleMap.h
index 0bbcfac3b81..c2c81db3fb3 100644
--- a/include/clang/Lex/ModuleMap.h
+++ b/include/clang/Lex/ModuleMap.h
@@ -466,5 +466,5 @@ public:
   module_iterator module_end()   const { return Modules.end(); }
 };
   
-}
+} // namespace clang
 #endif
diff --git a/include/clang/Lex/TokenConcatenation.h b/include/clang/Lex/TokenConcatenation.h
index a2d98b0d473..4f5771f6aa9 100644
--- a/include/clang/Lex/TokenConcatenation.h
+++ b/include/clang/Lex/TokenConcatenation.h
@@ -67,6 +67,6 @@ namespace clang {
     /// is literally 'L', 'u', 'U', or 'u8'.
     bool IsIdentifierStringPrefix(const Token &Tok) const;
   };
-  } // end clang namespace
+  } // namespace clang
 
 #endif
diff --git a/include/clang/Rewrite/Core/HTMLRewrite.h b/include/clang/Rewrite/Core/HTMLRewrite.h
index dafdf51ce63..83795148bd4 100644
--- a/include/clang/Rewrite/Core/HTMLRewrite.h
+++ b/include/clang/Rewrite/Core/HTMLRewrite.h
@@ -75,7 +75,7 @@ namespace html {
   /// reasonably close.
   void HighlightMacros(Rewriter &R, FileID FID, const Preprocessor &PP);
 
-} // end html namespace
-} // end clang namespace
+} // namespace html
+} // namespace clang
 
 #endif
diff --git a/include/clang/Rewrite/Frontend/ASTConsumers.h b/include/clang/Rewrite/Frontend/ASTConsumers.h
index c9df8895041..60377911645 100644
--- a/include/clang/Rewrite/Frontend/ASTConsumers.h
+++ b/include/clang/Rewrite/Frontend/ASTConsumers.h
@@ -43,6 +43,6 @@ std::unique_ptr<ASTConsumer> CreateHTMLPrinter(raw_ostream *OS,
                                                bool SyntaxHighlight = true,
                                                bool HighlightMacros = true);
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/Rewrite/Frontend/FixItRewriter.h b/include/clang/Rewrite/Frontend/FixItRewriter.h
index 3b1b31e0cde..448ae29f4da 100644
--- a/include/clang/Rewrite/Frontend/FixItRewriter.h
+++ b/include/clang/Rewrite/Frontend/FixItRewriter.h
@@ -127,6 +127,6 @@ public:
   void Diag(SourceLocation Loc, unsigned DiagID);
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/AnalysisBasedWarnings.h b/include/clang/Sema/AnalysisBasedWarnings.h
index 64dd2d36bef..5b1fbf399af 100644
--- a/include/clang/Sema/AnalysisBasedWarnings.h
+++ b/include/clang/Sema/AnalysisBasedWarnings.h
@@ -98,6 +98,7 @@ public:
   void PrintStats() const;
 };
 
-}} // end namespace clang::sema
+} // namespace sema
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/DelayedDiagnostic.h b/include/clang/Sema/DelayedDiagnostic.h
index 155b3aa72d7..6ae4308e1b8 100644
--- a/include/clang/Sema/DelayedDiagnostic.h
+++ b/include/clang/Sema/DelayedDiagnostic.h
@@ -291,7 +291,7 @@ public:
   bool pool_empty() const { return Diagnostics.empty(); }
 };
 
-}
+} // namespace sema
 
 /// Add a diagnostic to the current delay pool.
 inline void Sema::DelayedDiagnostics::add(const sema::DelayedDiagnostic &diag) {
@@ -300,6 +300,6 @@ inline void Sema::DelayedDiagnostics::add(const sema::DelayedDiagnostic &diag) {
 }
 
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/Lookup.h b/include/clang/Sema/Lookup.h
index 5bfee8b0d03..4259ab009ba 100644
--- a/include/clang/Sema/Lookup.h
+++ b/include/clang/Sema/Lookup.h
@@ -750,6 +750,6 @@ public:
   iterator end() { return iterator(Decls.end()); }
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/ObjCMethodList.h b/include/clang/Sema/ObjCMethodList.h
index b618e38f88c..ef48b06579a 100644
--- a/include/clang/Sema/ObjCMethodList.h
+++ b/include/clang/Sema/ObjCMethodList.h
@@ -53,6 +53,6 @@ struct ObjCMethodList {
   }
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/Ownership.h b/include/clang/Sema/Ownership.h
index 8acf9e82bf9..fe91423d677 100644
--- a/include/clang/Sema/Ownership.h
+++ b/include/clang/Sema/Ownership.h
@@ -103,7 +103,7 @@ namespace clang {
       return *this;
     }
   };
-}
+} // namespace clang
 
 namespace llvm {
   template <class T>
@@ -121,7 +121,7 @@ namespace llvm {
 
   template <class T>
   struct isPodLike<clang::OpaquePtr<T> > { static const bool value = true; };
-}
+} // namespace llvm
 
 namespace clang {
   // Basic
@@ -282,6 +282,6 @@ namespace clang {
     assert(!R.isInvalid() && "operation was asserted to never fail!");
     return R.get();
   }
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/ParsedTemplate.h b/include/clang/Sema/ParsedTemplate.h
index b36425f1be8..586f2d7f0b7 100644
--- a/include/clang/Sema/ParsedTemplate.h
+++ b/include/clang/Sema/ParsedTemplate.h
@@ -209,6 +209,6 @@ namespace clang {
   /// Retrieves the range of the given template parameter lists.
   SourceRange getTemplateParamsRange(TemplateParameterList const *const *Params,
                                      unsigned NumParams);  
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/PrettyDeclStackTrace.h b/include/clang/Sema/PrettyDeclStackTrace.h
index ca22e640deb..8e227a72868 100644
--- a/include/clang/Sema/PrettyDeclStackTrace.h
+++ b/include/clang/Sema/PrettyDeclStackTrace.h
@@ -42,6 +42,6 @@ public:
   void print(raw_ostream &OS) const override;
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/Sema.h b/include/clang/Sema/Sema.h
index cb75b969f11..4d815262592 100644
--- a/include/clang/Sema/Sema.h
+++ b/include/clang/Sema/Sema.h
@@ -198,7 +198,7 @@ namespace sema {
   class LambdaScopeInfo;
   class PossiblyUnreachableDiag;
   class TemplateDeductionInfo;
-}
+} // namespace sema
 
 namespace threadSafety {
   class BeforeSet;
diff --git a/include/clang/Sema/SemaConsumer.h b/include/clang/Sema/SemaConsumer.h
index 676646afbd5..f232c85e6d7 100644
--- a/include/clang/Sema/SemaConsumer.h
+++ b/include/clang/Sema/SemaConsumer.h
@@ -43,6 +43,6 @@ namespace clang {
       return Consumer->SemaConsumer;
     }
   };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/SemaFixItUtils.h b/include/clang/Sema/SemaFixItUtils.h
index 343ccfb3d63..4d85a632da2 100644
--- a/include/clang/Sema/SemaFixItUtils.h
+++ b/include/clang/Sema/SemaFixItUtils.h
@@ -87,5 +87,5 @@ struct ConversionFixItGenerator {
   }
 };
 
-} // endof namespace clang
+} // namespace clang
 #endif
diff --git a/include/clang/Sema/SemaLambda.h b/include/clang/Sema/SemaLambda.h
index d043e2c459b..1e9a376dc1a 100644
--- a/include/clang/Sema/SemaLambda.h
+++ b/include/clang/Sema/SemaLambda.h
@@ -31,6 +31,6 @@ Optional<unsigned> getStackIndexOfNearestEnclosingCaptureCapableLambda(
     ArrayRef<const sema::FunctionScopeInfo *> FunctionScopes,
     VarDecl *VarToCapture, Sema &S);
 
-} // clang
+} // namespace clang
 
 #endif
diff --git a/include/clang/Sema/Template.h b/include/clang/Sema/Template.h
index b822b11126e..5307bf5f5b9 100644
--- a/include/clang/Sema/Template.h
+++ b/include/clang/Sema/Template.h
@@ -513,6 +513,6 @@ namespace clang {
         VarTemplatePartialSpecializationDecl *PartialSpec);
     void InstantiateEnumDefinition(EnumDecl *Enum, EnumDecl *Pattern);
   };  
-}
+} // namespace clang
 
 #endif // LLVM_CLANG_SEMA_TEMPLATE_H
diff --git a/include/clang/Sema/TypoCorrection.h b/include/clang/Sema/TypoCorrection.h
index 958aab0fce3..814a85ab8e4 100644
--- a/include/clang/Sema/TypoCorrection.h
+++ b/include/clang/Sema/TypoCorrection.h
@@ -355,6 +355,6 @@ public:
   }
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Serialization/ASTBitCodes.h b/include/clang/Serialization/ASTBitCodes.h
index 83185a870ab..da217f158df 100644
--- a/include/clang/Serialization/ASTBitCodes.h
+++ b/include/clang/Serialization/ASTBitCodes.h
@@ -1481,7 +1481,7 @@ namespace clang {
     };
 
     /// @}
-  }
+  } // namespace serialization
 } // end namespace clang
 
 #endif
diff --git a/include/clang/Serialization/ASTDeserializationListener.h b/include/clang/Serialization/ASTDeserializationListener.h
index 4b10c39d8fb..39213311937 100644
--- a/include/clang/Serialization/ASTDeserializationListener.h
+++ b/include/clang/Serialization/ASTDeserializationListener.h
@@ -53,6 +53,6 @@ public:
   /// \brief A module definition was read from the AST file.
   virtual void ModuleRead(serialization::SubmoduleID ID, Module *Mod) {}
 };
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Serialization/ContinuousRangeMap.h b/include/clang/Serialization/ContinuousRangeMap.h
index 244b01b22aa..05777e31ece 100644
--- a/include/clang/Serialization/ContinuousRangeMap.h
+++ b/include/clang/Serialization/ContinuousRangeMap.h
@@ -134,6 +134,6 @@ public:
   friend class Builder;
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Serialization/GlobalModuleIndex.h b/include/clang/Serialization/GlobalModuleIndex.h
index 7e205106c4e..e11605a1d39 100644
--- a/include/clang/Serialization/GlobalModuleIndex.h
+++ b/include/clang/Serialization/GlobalModuleIndex.h
@@ -202,6 +202,6 @@ public:
                               StringRef Path);
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/Serialization/ModuleManager.h b/include/clang/Serialization/ModuleManager.h
index ea4b57fa3ac..a5418ba4e08 100644
--- a/include/clang/Serialization/ModuleManager.h
+++ b/include/clang/Serialization/ModuleManager.h
@@ -330,6 +330,7 @@ public:
   void viewGraph();
 };
 
-} } // end namespace clang::serialization
+} // namespace serialization
+ } // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h b/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
index 5850656916e..6602219d1e3 100644
--- a/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
+++ b/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h
@@ -228,7 +228,9 @@ public:
   static CallEffects getEffect(const FunctionDecl *FD);
 };
 
-}}}
+} // namespace objc_retain
+} // namespace ento
+} // namespace clang
 
 #endif
 
diff --git a/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h b/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
index f02e48a4418..3e8a8c6f945 100644
--- a/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
+++ b/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
@@ -538,6 +538,6 @@ public:
   
 typedef IntrusiveRefCntPtr<AnalyzerOptions> AnalyzerOptionsRef;
   
-}
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h b/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
index 308ac8363be..28ae89d7d01 100644
--- a/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
+++ b/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
@@ -311,8 +311,8 @@ public:
   virtual void Profile(llvm::FoldingSetNodeID& hash) const;
 };
 
-} // end ento namespace
-} // end clang namespace
+} // namespace ento
+} // namespace clang
 
 namespace llvm {
   template<> struct ilist_traits<clang::ento::BugReport>
@@ -331,7 +331,7 @@ namespace llvm {
   private:
     mutable ilist_half_node<clang::ento::BugReport> Sentinel;
   };
-}
+} // namespace llvm
 
 namespace clang {
 namespace ento {
@@ -554,8 +554,8 @@ public:
   virtual BugReport::NodeResolver& getNodeResolver() = 0;
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h b/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
index 83b05ecc52a..129c329feb0 100644
--- a/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
+++ b/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h
@@ -357,9 +357,9 @@ const Stmt *GetRetValExpr(const ExplodedNode *N);
 bool isDeclRefExprToReference(const Expr *E);
 
 
-} // end namespace clang
+} // namespace bugreporter
 } // end namespace ento
-} // end namespace bugreporter
+} // namespace clang
 
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h b/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
index 16226e94df4..a543052782b 100644
--- a/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
+++ b/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h
@@ -75,7 +75,7 @@ public:
   StringRef getDescription() const { return desc; }
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h b/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
index 941d524079b..d98dd78e40e 100644
--- a/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
+++ b/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
@@ -842,8 +842,8 @@ public:
   void FullProfile(llvm::FoldingSetNodeID &ID) const;
 };  
 
-} // end GR namespace
+} // namespace ento
 
-} //end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/Checker.h b/include/clang/StaticAnalyzer/Core/Checker.h
index 099d76311fc..4bd765379c4 100644
--- a/include/clang/StaticAnalyzer/Core/Checker.h
+++ b/include/clang/StaticAnalyzer/Core/Checker.h
@@ -411,7 +411,7 @@ public:
   }
 };
 
-} // end check namespace
+} // namespace check
 
 namespace eval {
 
@@ -446,7 +446,7 @@ public:
   }
 };
 
-} // end eval namespace
+} // namespace eval
 
 class CheckerBase : public ProgramPointTag {
   CheckName Name;
@@ -528,8 +528,8 @@ struct DefaultBool {
   DefaultBool &operator=(bool b) { val = b; return *this; }
 };
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/CheckerManager.h b/include/clang/StaticAnalyzer/Core/CheckerManager.h
index 8a1a82b342a..ed7c384f658 100644
--- a/include/clang/StaticAnalyzer/Core/CheckerManager.h
+++ b/include/clang/StaticAnalyzer/Core/CheckerManager.h
@@ -602,8 +602,8 @@ private:
   EventsTy Events;
 };
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h b/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
index ce512fd301e..b2a2fbd2c38 100644
--- a/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
+++ b/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h
@@ -34,7 +34,7 @@ void CREATEFN(AnalyzerOptions &AnalyzerOpts,\
               const Preprocessor &PP);
 #include "clang/StaticAnalyzer/Core/Analyses.def"
 
-} // end 'ento' namespace
-} // end 'clang' namespace
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h b/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
index cc8a9b8ef07..164d7d586ef 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
@@ -103,7 +103,7 @@ public:
   }
 };
     
-} // end ento namespace
-} // end clang namespace
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h b/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
index 3e0913ec4ee..f307c10b592 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
@@ -128,8 +128,8 @@ public:
   }
 };
 
-} // enAnaCtxMgrspace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h b/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
index 5b007f1531d..8930258614b 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
@@ -193,8 +193,8 @@ public:
   const SVal* getPersistentSVal(SVal X);
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h b/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
index 1d779e6cb6e..3a0f4ef8864 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h
@@ -53,8 +53,8 @@ public:
   friend class Factory;
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
index 63b8631665a..d4fbde0aac6 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
@@ -1027,6 +1027,6 @@ namespace llvm {
       return Val.get();
     }
   };
-}
+} // namespace llvm
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
index 68274f52a60..136e6d75bf8 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
@@ -304,8 +304,8 @@ private:
   }
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
index 6a42df20d1c..92255de2c1e 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h
@@ -36,8 +36,8 @@ template <class T> bool containsStmt(const Stmt *S) {
   return false;
 }
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
index f8760964b75..a92c3bebeff 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h
@@ -152,8 +152,8 @@ std::unique_ptr<ConstraintManager>
 CreateRangeConstraintManager(ProgramStateManager &statemgr,
                              SubEngine *subengine);
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h b/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
index d5822e22448..7084fa0592a 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h
@@ -541,7 +541,7 @@ public:
   }
 };
 
-} // end ento namespace
-} // end clang namespace
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h b/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
index e13c6410c7b..accbe7d3eac 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h
@@ -46,7 +46,7 @@ public:
   }
 };
 
-} // end ento
-} // end clang
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h b/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
index cc3779d743f..946ec6f5f3c 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h
@@ -120,8 +120,8 @@ public:
                                  ProgramStateRef state);
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
index cfb1b921e9a..22b7d732c02 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h
@@ -433,9 +433,9 @@ public:
   inline const_iterator end()   const { return Impl.end();   }
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 // GraphTraits
 
@@ -492,6 +492,6 @@ namespace llvm {
     }
   };
 
-} // end llvm namespace
+} // namespace llvm
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
index d8f1c34fefd..e980ab70ae5 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h
@@ -613,8 +613,8 @@ struct ProgramStateTrait<ReplayWithoutInlining> :
   static void *GDMIndex() { static int index = 0; return &index; }
 };
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h b/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
index faa35000451..9e621191386 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h
@@ -135,6 +135,7 @@ public:
 
 };
 
-}} // end clang ento namespaces
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h b/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
index 4f0712968bf..c57756e441a 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
@@ -1345,9 +1345,9 @@ public:
   bool hasTrait(const MemRegion *MR, InvalidationKinds IK);
 };
   
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 //===----------------------------------------------------------------------===//
 // Pretty-printing regions.
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
index ac4e452c025..49602374a3c 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
@@ -813,8 +813,8 @@ public:
   bool scan(const SymExpr *sym);
 };
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h b/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
index 6b4da7db244..56b5d6d40c7 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h
@@ -238,8 +238,8 @@ namespace ento {
     }
   };
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h b/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
index a68d3410a87..d45cee05b53 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
@@ -326,8 +326,8 @@ SValBuilder* createSimpleSValBuilder(llvm::BumpPtrAllocator &alloc,
                                      ASTContext &context,
                                      ProgramStateManager &stateMgr);
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h b/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
index 642e11af0e6..baeb09a3e1c 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
@@ -457,7 +457,7 @@ private:
   }
 };
 
-} // end namespace ento::nonloc
+} // namespace nonloc
 
 //==------------------------------------------------------------------------==//
 //  Subclasses of Loc.
@@ -551,11 +551,11 @@ private:
   }
 };
 
-} // end ento::loc namespace
+} // namespace loc
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 namespace llvm {
 static inline raw_ostream &operator<<(raw_ostream &os,
@@ -569,6 +569,6 @@ template <> struct isPodLike<clang::ento::SVal> {
   static const bool value = true;
 };
 
-} // end llvm namespace
+} // namespace llvm
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h b/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
index a03b6306a0e..c41ac8ed62b 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
@@ -281,8 +281,8 @@ CreateRegionStoreManager(ProgramStateManager &StMgr);
 std::unique_ptr<StoreManager>
 CreateFieldsOnlyRegionStoreManager(ProgramStateManager &StMgr);
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h b/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
index 958c8c377ea..ed8af4a52e6 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h
@@ -47,5 +47,6 @@ public:
   const StoreManager &getStoreManager() const { return mgr; }
 };
 
-}}
+} // namespace ento
+} // namespace clang
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h b/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
index 741ba0e2f29..d7aee40a055 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h
@@ -155,8 +155,8 @@ public:
   virtual void processEndWorklist(bool hasWorkRemaining) = 0;
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h b/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
index 1ca96a22314..a933e658c54 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
@@ -660,9 +660,9 @@ public:
   virtual ~SymbolVisitor();
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 namespace llvm {
 static inline raw_ostream &operator<<(raw_ostream &os,
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h b/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
index d39b5017d31..cef8918ff57 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h
@@ -40,7 +40,7 @@ class TaintManager {
   TaintManager() {}
 };
 
-}
-}
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h b/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
index 4f1a60e6755..609bbc873f1 100644
--- a/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
+++ b/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h
@@ -93,8 +93,8 @@ public:
   static WorkList *makeBFSBlockDFSContents();
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h b/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
index 37ea05fb99c..e37c747528b 100644
--- a/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
+++ b/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h
@@ -42,8 +42,8 @@ public:
 std::unique_ptr<AnalysisASTConsumer>
 CreateAnalysisConsumer(CompilerInstance &CI);
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/include/clang/StaticAnalyzer/Frontend/FrontendActions.h b/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
index 36afb4bc5d7..c55c25e7951 100644
--- a/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
+++ b/include/clang/StaticAnalyzer/Frontend/FrontendActions.h
@@ -53,7 +53,7 @@ private:
 
 void printCheckerHelp(raw_ostream &OS, ArrayRef<std::string> plugins);
 
-} // end GR namespace
+} // namespace ento
 
 } // end namespace clang
 
diff --git a/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h b/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
index 24f8042587f..5723c2eb453 100644
--- a/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
+++ b/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h
@@ -38,7 +38,7 @@ public:
 private:
   llvm::StringMap<Stmt *> &Bodies;
 };
-}
-}
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp
index 8c2e0f4de80..81d1a283f02 100644
--- a/lib/ARCMigrate/ObjCMT.cpp
+++ b/lib/ARCMigrate/ObjCMT.cpp
@@ -177,7 +177,7 @@ protected:
   }
 };
 
-}
+} // namespace
 
 ObjCMigrateAction::ObjCMigrateAction(FrontendAction *WrappedAction,
                                      StringRef migrateDir,
@@ -379,7 +379,7 @@ public:
     return true;
   }
 };
-}
+} // namespace
 
 void ObjCMigrateASTConsumer::migrateDecl(Decl *D) {
   if (!D)
@@ -1853,7 +1853,7 @@ private:
   }
 };
 
-}
+} // namespace
 
 void ObjCMigrateASTConsumer::HandleTranslationUnit(ASTContext &Ctx) {
   
@@ -2084,7 +2084,7 @@ template<> struct DenseMapInfo<EditEntry> {
         LHS.Text == RHS.Text;
   }
 };
-}
+} // namespace llvm
 
 namespace {
 class RemapFileParser {
@@ -2166,7 +2166,7 @@ private:
       Entries.push_back(Entry);
   }
 };
-}
+} // namespace
 
 static bool reportDiag(const Twine &Err, DiagnosticsEngine &Diag) {
   Diag.Report(Diag.getCustomDiagID(DiagnosticsEngine::Error, "%0"))
diff --git a/lib/ARCMigrate/TransAutoreleasePool.cpp b/lib/ARCMigrate/TransAutoreleasePool.cpp
index a8a99fa712a..8e944110af8 100644
--- a/lib/ARCMigrate/TransAutoreleasePool.cpp
+++ b/lib/ARCMigrate/TransAutoreleasePool.cpp
@@ -62,7 +62,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 namespace {
 
diff --git a/lib/ARCMigrate/Transforms.cpp b/lib/ARCMigrate/Transforms.cpp
index 56d3af7233b..dfae3f5cba3 100644
--- a/lib/ARCMigrate/Transforms.cpp
+++ b/lib/ARCMigrate/Transforms.cpp
@@ -355,7 +355,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 MigrationContext::~MigrationContext() {
   for (traverser_iterator
diff --git a/lib/AST/ASTDumper.cpp b/lib/AST/ASTDumper.cpp
index 60cbb060113..6b4a078734c 100644
--- a/lib/AST/ASTDumper.cpp
+++ b/lib/AST/ASTDumper.cpp
@@ -550,7 +550,7 @@ namespace  {
     void visitVerbatimBlockLineComment(const VerbatimBlockLineComment *C);
     void visitVerbatimLineComment(const VerbatimLineComment *C);
   };
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 //  Utilities
diff --git a/lib/AST/ASTImporter.cpp b/lib/AST/ASTImporter.cpp
index 76e4e119150..3c9899aec80 100644
--- a/lib/AST/ASTImporter.cpp
+++ b/lib/AST/ASTImporter.cpp
@@ -223,7 +223,7 @@ namespace clang {
     Expr *VisitMemberExpr(MemberExpr *E);
     Expr *VisitCallExpr(CallExpr *E);
   };
-}
+} // namespace clang
 using namespace clang;
 
 //----------------------------------------------------------------------------
@@ -296,7 +296,7 @@ namespace {
       return C2.getDiagnostics().Report(Loc, DiagID);
     }
   };
-}
+} // namespace
 
 static bool IsStructurallyEquivalent(StructuralEquivalenceContext &Context,
                                      QualType T1, QualType T2);
diff --git a/lib/AST/CXXABI.h b/lib/AST/CXXABI.h
index dad226474fa..2dab43cea17 100644
--- a/lib/AST/CXXABI.h
+++ b/lib/AST/CXXABI.h
@@ -62,6 +62,6 @@ public:
 /// Creates an instance of a C++ ABI class.
 CXXABI *CreateItaniumCXXABI(ASTContext &Ctx);
 CXXABI *CreateMicrosoftCXXABI(ASTContext &Ctx);
-}
+} // namespace clang
 
 #endif
diff --git a/lib/AST/CXXInheritance.cpp b/lib/AST/CXXInheritance.cpp
index 800c8f83b88..b1c5a0033b8 100644
--- a/lib/AST/CXXInheritance.cpp
+++ b/lib/AST/CXXInheritance.cpp
@@ -470,7 +470,7 @@ namespace {
                  const CXXRecordDecl *InVirtualSubobject,
                  CXXFinalOverriderMap &Overriders);
   };
-}
+} // namespace
 
 void FinalOverriderCollector::Collect(const CXXRecordDecl *RD, 
                                       bool VirtualBase,
diff --git a/lib/AST/Decl.cpp b/lib/AST/Decl.cpp
index d9a3389c58f..973d79fc5d2 100644
--- a/lib/AST/Decl.cpp
+++ b/lib/AST/Decl.cpp
@@ -1350,7 +1350,7 @@ public:
     return LV;
   }
 };
-}
+} // namespace clang
 
 static LinkageInfo getLVForDecl(const NamedDecl *D,
                                 LVComputationKind computation) {
diff --git a/lib/AST/DeclObjC.cpp b/lib/AST/DeclObjC.cpp
index a1600cb1101..c2c590f7c04 100644
--- a/lib/AST/DeclObjC.cpp
+++ b/lib/AST/DeclObjC.cpp
@@ -1259,7 +1259,7 @@ namespace {
                  const SynthesizeIvarChunk &RHS) {
       return LHS.Size < RHS.Size;
   }
-}
+} // namespace
 
 /// all_declared_ivar_begin - return first ivar declared in this class,
 /// its extensions and its implementation. Lazily build the list on first
diff --git a/lib/AST/DeclPrinter.cpp b/lib/AST/DeclPrinter.cpp
index c3ce4760097..0ea946d498d 100644
--- a/lib/AST/DeclPrinter.cpp
+++ b/lib/AST/DeclPrinter.cpp
@@ -96,7 +96,7 @@ namespace {
     void prettyPrintAttributes(Decl *D);
     void printDeclType(QualType T, StringRef DeclName, bool Pack = false);
   };
-}
+} // namespace
 
 void Decl::print(raw_ostream &Out, unsigned Indentation,
                  bool PrintInstantiation) const {
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index 36f4139f835..8f0c57b10b7 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -188,7 +188,7 @@ namespace {
                                 SourceLocation (Expr::*v)() const) {
     return static_cast<const E*>(expr)->getLocStart();
   }
-}
+} // namespace
 
 SourceLocation Expr::getExprLoc() const {
   switch (getStmtClass()) {
@@ -2907,7 +2907,7 @@ namespace {
         HasSideEffects = true;
     }
   };
-}
+} // namespace
 
 bool Expr::HasSideEffects(const ASTContext &Ctx,
                           bool IncludePossibleEffects) const {
@@ -3208,7 +3208,7 @@ namespace {
       NonTrivial = true;
     }
   };
-}
+} // namespace
 
 bool Expr::hasNonTrivialCall(const ASTContext &Ctx) const {
   NonTrivialCallFinder Finder(Ctx);
diff --git a/lib/AST/ExprConstant.cpp b/lib/AST/ExprConstant.cpp
index 8e472f17414..b69bc1c7953 100644
--- a/lib/AST/ExprConstant.cpp
+++ b/lib/AST/ExprConstant.cpp
@@ -791,7 +791,7 @@ namespace {
   };
   typedef ScopeRAII<false> BlockScopeRAII;
   typedef ScopeRAII<true> FullExpressionRAII;
-}
+} // namespace
 
 bool SubobjectDesignator::checkSubobject(EvalInfo &Info, const Expr *E,
                                          CheckSubobjectKind CSK) {
@@ -1091,7 +1091,7 @@ namespace {
       return false;
     return LHS.Path == RHS.Path;
   }
-}
+} // namespace
 
 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E);
 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info,
@@ -3210,7 +3210,7 @@ enum EvalStmtResult {
   /// Still scanning for 'case' or 'default' statement.
   ESR_CaseNotFound
 };
-}
+} // namespace
 
 static bool EvaluateDecl(EvalInfo &Info, const Decl *D) {
   if (const VarDecl *VD = dyn_cast<VarDecl>(D)) {
@@ -4314,7 +4314,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // Common base class for lvalue and temporary evaluation.
@@ -4411,7 +4411,7 @@ public:
     }
   }
 };
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // LValue Evaluation
@@ -5153,7 +5153,7 @@ namespace {
     bool VisitCXXConstructExpr(const CXXConstructExpr *E);
     bool VisitCXXStdInitializerListExpr(const CXXStdInitializerListExpr *E);
   };
-}
+} // namespace
 
 /// Perform zero-initialization on an object of non-union class type.
 /// C++11 [dcl.init]p5:
@@ -6645,7 +6645,7 @@ private:
   }
 };
 
-}
+} // namespace
 
 bool DataRecursiveIntBinOpEvaluator::
        VisitBinOpLHSOnly(EvalResult &LHSResult, const BinaryOperator *E,
@@ -8640,7 +8640,7 @@ struct ICEDiag {
   ICEDiag(ICEKind IK, SourceLocation l) : Kind(IK), Loc(l) {}
 };
 
-}
+} // namespace
 
 static ICEDiag NoDiag() { return ICEDiag(IK_ICE, SourceLocation()); }
 
diff --git a/lib/AST/ItaniumCXXABI.cpp b/lib/AST/ItaniumCXXABI.cpp
index 7503cbfc980..28cb6d8b36a 100644
--- a/lib/AST/ItaniumCXXABI.cpp
+++ b/lib/AST/ItaniumCXXABI.cpp
@@ -153,7 +153,7 @@ public:
     return new ItaniumNumberingContext();
   }
 };
-}
+} // namespace
 
 CXXABI *clang::CreateItaniumCXXABI(ASTContext &Ctx) {
   return new ItaniumCXXABI(Ctx);
diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp
index e5a31f879b7..38c3ccb673f 100644
--- a/lib/AST/ItaniumMangle.cpp
+++ b/lib/AST/ItaniumMangle.cpp
@@ -408,7 +408,7 @@ private:
   void mangleFunctionParam(const ParmVarDecl *parm);
 };
 
-}
+} // namespace
 
 bool ItaniumMangleContextImpl::shouldMangleCXXName(const NamedDecl *D) {
   const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
diff --git a/lib/AST/MicrosoftCXXABI.cpp b/lib/AST/MicrosoftCXXABI.cpp
index aba6796256a..29229ee3c04 100644
--- a/lib/AST/MicrosoftCXXABI.cpp
+++ b/lib/AST/MicrosoftCXXABI.cpp
@@ -124,7 +124,7 @@ public:
     return new MicrosoftNumberingContext();
   }
 };
-}
+} // namespace
 
 // getNumBases() seems to only give us the number of direct bases, and not the
 // total.  This function tells us if we inherit from anybody that uses MI, or if
diff --git a/lib/AST/MicrosoftMangle.cpp b/lib/AST/MicrosoftMangle.cpp
index 29a95a5103c..01b1ed3c2de 100644
--- a/lib/AST/MicrosoftMangle.cpp
+++ b/lib/AST/MicrosoftMangle.cpp
@@ -313,7 +313,7 @@ private:
   void mangleTemplateArg(const TemplateDecl *TD, const TemplateArgument &TA,
                          const NamedDecl *Parm);
 };
-}
+} // namespace
 
 bool MicrosoftMangleContextImpl::shouldMangleCXXName(const NamedDecl *D) {
   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
diff --git a/lib/AST/NestedNameSpecifier.cpp b/lib/AST/NestedNameSpecifier.cpp
index 50a00502ca9..059262109fc 100644
--- a/lib/AST/NestedNameSpecifier.cpp
+++ b/lib/AST/NestedNameSpecifier.cpp
@@ -377,7 +377,7 @@ namespace {
     memcpy(&Result, static_cast<char *>(Data) + Offset, sizeof(void*));
     return Result;
   }
-}
+} // namespace
 
 SourceRange NestedNameSpecifierLoc::getSourceRange() const {
   if (!Qualifier)
@@ -470,7 +470,7 @@ namespace {
            reinterpret_cast<char *>(&Ptr) + sizeof(void *),
            Buffer, BufferSize, BufferCapacity);
   }
-}
+} // namespace
 
 NestedNameSpecifierLocBuilder::
 NestedNameSpecifierLocBuilder(const NestedNameSpecifierLocBuilder &Other) 
diff --git a/lib/AST/Stmt.cpp b/lib/AST/Stmt.cpp
index 6f4a89fee39..31baed83e92 100644
--- a/lib/AST/Stmt.cpp
+++ b/lib/AST/Stmt.cpp
@@ -190,7 +190,7 @@ namespace {
   (void) is_good(implements_getLocStart(&type::getLocStart))
 #define ASSERT_IMPLEMENTS_getLocEnd(type) \
   (void) is_good(implements_getLocEnd(&type::getLocEnd))
-}
+} // namespace
 
 /// Check whether the various Stmt classes implement their member
 /// functions.
@@ -239,7 +239,7 @@ namespace {
     return SourceRange(static_cast<const S*>(stmt)->getLocStart(),
                        static_cast<const S*>(stmt)->getLocEnd());
   }
-}
+} // namespace
 
 SourceRange Stmt::getSourceRange() const {
   switch (getStmtClass()) {
diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp
index 658e3dfdeed..36eb08c01cb 100644
--- a/lib/AST/StmtPrinter.cpp
+++ b/lib/AST/StmtPrinter.cpp
@@ -104,7 +104,7 @@ namespace  {
     void Visit##CLASS(CLASS *Node);
 #include "clang/AST/StmtNodes.inc"
   };
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 //  Stmt printing methods.
@@ -799,7 +799,7 @@ void OMPClausePrinter::VisitOMPFlushClause(OMPFlushClause *Node) {
     OS << ")";
   }
 }
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 //  OpenMP directives printing methods
diff --git a/lib/AST/StmtProfile.cpp b/lib/AST/StmtProfile.cpp
index 23f8d0c8be7..47e161fd94d 100644
--- a/lib/AST/StmtProfile.cpp
+++ b/lib/AST/StmtProfile.cpp
@@ -65,7 +65,7 @@ namespace {
     /// \brief Visit a single template argument.
     void VisitTemplateArgument(const TemplateArgument &Arg);
   };
-}
+} // namespace
 
 void StmtProfiler::VisitStmt(const Stmt *S) {
   ID.AddInteger(S->getStmtClass());
@@ -425,7 +425,7 @@ OMPClauseProfiler::VisitOMPCopyprivateClause(const OMPCopyprivateClause *C) {
 void OMPClauseProfiler::VisitOMPFlushClause(const OMPFlushClause *C) {
   VisitOMPClauseList(C);
 }
-}
+} // namespace
 
 void
 StmtProfiler::VisitOMPExecutableDirective(const OMPExecutableDirective *S) {
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index 3ac11719409..097d0120826 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -597,7 +597,7 @@ namespace {
       return Visit(T->getOriginalType());
     }
   };
-}
+} // namespace
 
 AutoType *Type::getContainedAutoType() const {
   return GetContainedAutoVisitor().Visit(this);
@@ -2101,7 +2101,7 @@ public:
                          L.hasLocalOrUnnamedType() | R.hasLocalOrUnnamedType());
   }
 };
-}
+} // namespace
 
 static CachedProperties computeCachedProperties(const Type *T);
 
@@ -2143,7 +2143,7 @@ public:
     T->TypeBits.CachedLocalOrUnnamed = Result.hasLocalOrUnnamedType();
   }
 };
-}
+} // namespace clang
 
 // Instantiate the friend template at a private class.  In a
 // reasonable implementation, these symbols will be internal.
diff --git a/lib/AST/TypeLoc.cpp b/lib/AST/TypeLoc.cpp
index c069eb06173..f3d379ae6ee 100644
--- a/lib/AST/TypeLoc.cpp
+++ b/lib/AST/TypeLoc.cpp
@@ -33,7 +33,7 @@ namespace {
     }
 #include "clang/AST/TypeLocNodes.def"
   };
-}
+} // namespace
 
 SourceRange TypeLoc::getLocalSourceRangeImpl(TypeLoc TL) {
   if (TL.isNull()) return SourceRange();
@@ -50,7 +50,7 @@ namespace {
     }
 #include "clang/AST/TypeLocNodes.def"
   };
-}
+} // namespace
 
 /// \brief Returns the alignment of the type source info data block.
 unsigned TypeLoc::getLocalAlignmentForType(QualType Ty) {
@@ -68,7 +68,7 @@ namespace {
     }
 #include "clang/AST/TypeLocNodes.def"
   };
-}
+} // namespace
 
 /// \brief Returns the size of the type source info data block.
 unsigned TypeLoc::getFullDataSizeForType(QualType Ty) {
@@ -96,7 +96,7 @@ namespace {
     }
 #include "clang/AST/TypeLocNodes.def"
   };
-}
+} // namespace
 
 /// \brief Get the next TypeLoc pointed by this TypeLoc, e.g for "int*" the
 /// TypeLoc is a PointerLoc and next TypeLoc is for "int".
@@ -216,7 +216,7 @@ namespace {
     }
 #include "clang/AST/TypeLocNodes.def"
   };
-}
+} // namespace
 
 
 /// \brief Determines if the given type loc corresponds to a
diff --git a/lib/AST/TypePrinter.cpp b/lib/AST/TypePrinter.cpp
index ebe09d85495..a727a51fe6d 100644
--- a/lib/AST/TypePrinter.cpp
+++ b/lib/AST/TypePrinter.cpp
@@ -108,7 +108,7 @@ namespace {
     void print##CLASS##After(const CLASS##Type *T, raw_ostream &OS);
 #include "clang/AST/TypeNodes.def"
   };
-}
+} // namespace
 
 static void AppendTypeQualList(raw_ostream &OS, unsigned TypeQuals, bool C99) {
   bool appendSpace = false;
diff --git a/lib/AST/VTableBuilder.cpp b/lib/AST/VTableBuilder.cpp
index ca5f0aad001..ef3e5bb0b48 100644
--- a/lib/AST/VTableBuilder.cpp
+++ b/lib/AST/VTableBuilder.cpp
@@ -2237,7 +2237,7 @@ void ItaniumVTableBuilder::dumpLayout(raw_ostream &Out) {
 
   Out << '\n';
 }
-}
+} // namespace
 
 VTableLayout::VTableLayout(uint64_t NumVTableComponents,
                            const VTableComponent *VTableComponents,
diff --git a/lib/Analysis/BodyFarm.cpp b/lib/Analysis/BodyFarm.cpp
index 7d1b2357529..77bb3eaaa15 100644
--- a/lib/Analysis/BodyFarm.cpp
+++ b/lib/Analysis/BodyFarm.cpp
@@ -84,7 +84,7 @@ public:
 private:
   ASTContext &C;
 };
-}
+} // namespace
 
 BinaryOperator *ASTMaker::makeAssignment(const Expr *LHS, const Expr *RHS,
                                          QualType Ty) {
diff --git a/lib/Analysis/BodyFarm.h b/lib/Analysis/BodyFarm.h
index 91379437231..e5b554cb228 100644
--- a/lib/Analysis/BodyFarm.h
+++ b/lib/Analysis/BodyFarm.h
@@ -46,6 +46,6 @@ private:
   BodyMap Bodies;
   CodeInjector *Injector;
 };
-}
+} // namespace clang
 
 #endif
diff --git a/lib/Analysis/CallGraph.cpp b/lib/Analysis/CallGraph.cpp
index 91a8492eaa5..344146f857e 100644
--- a/lib/Analysis/CallGraph.cpp
+++ b/lib/Analysis/CallGraph.cpp
@@ -225,4 +225,4 @@ struct DOTGraphTraits<const CallGraph*> : public DefaultDOTGraphTraits {
   }
 
 };
-}
+} // namespace llvm
diff --git a/lib/Analysis/Consumed.cpp b/lib/Analysis/Consumed.cpp
index fa985ee02e5..5c892b25c05 100644
--- a/lib/Analysis/Consumed.cpp
+++ b/lib/Analysis/Consumed.cpp
@@ -941,7 +941,8 @@ void ConsumedStmtVisitor::VisitVarDecl(const VarDecl *Var) {
     StateMap->setState(Var, consumed::CS_Unknown);
   }
 }
-}} // end clang::consumed::ConsumedStmtVisitor
+} // namespace consumed
+} // namespace clang
 
 namespace clang {
 namespace consumed {
@@ -1467,4 +1468,5 @@ void ConsumedAnalyzer::run(AnalysisDeclContext &AC) {
   
   WarningsHandler.emitDiagnostics();
 }
-}} // end namespace clang::consumed
+} // namespace consumed
+} // namespace clang
diff --git a/lib/Analysis/FormatStringParsing.h b/lib/Analysis/FormatStringParsing.h
index e1652964b8c..d5415217150 100644
--- a/lib/Analysis/FormatStringParsing.h
+++ b/lib/Analysis/FormatStringParsing.h
@@ -68,7 +68,7 @@ public:
   const T &getValue() { return FS; }
 };
   
-} // end analyze_format_string namespace
-} // end clang namespace
+} // namespace analyze_format_string
+} // namespace clang
 
 #endif
diff --git a/lib/Analysis/LiveVariables.cpp b/lib/Analysis/LiveVariables.cpp
index 0ab158036d8..13af3beaa2a 100644
--- a/lib/Analysis/LiveVariables.cpp
+++ b/lib/Analysis/LiveVariables.cpp
@@ -44,7 +44,7 @@ public:
   void sortWorklist();
 };
 
-}
+} // namespace
 
 void DataflowWorklist::enqueueBlock(const clang::CFGBlock *block) {
   if (block && !enqueuedBlocks[block->getBlockID()]) {
@@ -106,7 +106,7 @@ public:
       DSetFact(false), // This is a *major* performance win.
       killAtAssign(KillAtAssign) {}
 };
-}
+} // namespace
 
 static LiveVariablesImpl &getImpl(void *x) {
   return *((LiveVariablesImpl *) x);
@@ -135,7 +135,7 @@ namespace {
     }
     return A;
   }
-}
+} // namespace
 
 void LiveVariables::Observer::anchor() { }
 
@@ -212,7 +212,7 @@ public:
   void VisitUnaryOperator(UnaryOperator *UO);
   void Visit(Stmt *S);
 };
-}
+} // namespace
 
 static const VariableArrayType *FindVA(QualType Ty) {
   const Type *ty = Ty.getTypePtr();
diff --git a/lib/Analysis/ReachableCode.cpp b/lib/Analysis/ReachableCode.cpp
index 8165b09f408..795d6741fe9 100644
--- a/lib/Analysis/ReachableCode.cpp
+++ b/lib/Analysis/ReachableCode.cpp
@@ -370,7 +370,7 @@ namespace {
                         const Stmt *S,
                         clang::reachable_code::Callback &CB);
   };
-}
+} // namespace
 
 void DeadCodeScan::enqueue(const CFGBlock *block) {
   unsigned blockID = block->getBlockID();
@@ -676,4 +676,5 @@ void FindUnreachableCode(AnalysisDeclContext &AC, Preprocessor &PP,
   }
 }
 
-}} // end namespace clang::reachable_code
+} // namespace reachable_code
+} // namespace clang
diff --git a/lib/Analysis/ThreadSafetyLogical.cpp b/lib/Analysis/ThreadSafetyLogical.cpp
index facfa11a39a..9d8456719b2 100644
--- a/lib/Analysis/ThreadSafetyLogical.cpp
+++ b/lib/Analysis/ThreadSafetyLogical.cpp
@@ -109,4 +109,4 @@ bool implies(const LExpr *LHS, const LExpr *RHS) {
 }
 }
 }
-}
+} // namespace clang
diff --git a/lib/Analysis/UninitializedValues.cpp b/lib/Analysis/UninitializedValues.cpp
index f2f791957aa..df071c44811 100644
--- a/lib/Analysis/UninitializedValues.cpp
+++ b/lib/Analysis/UninitializedValues.cpp
@@ -62,7 +62,7 @@ public:
   /// Returns the bit vector index for a given declaration.
   Optional<unsigned> getValueIndex(const VarDecl *d) const;
 };
-}
+} // namespace
 
 void DeclToIndex::computeMap(const DeclContext &dc) {
   unsigned count = 0;
@@ -223,7 +223,7 @@ public:
   void enqueueSuccessors(const CFGBlock *block);
   const CFGBlock *dequeue();
 };
-}
+} // namespace
 
 void DataflowWorklist::enqueueSuccessors(const clang::CFGBlock *block) {
   for (CFGBlock::const_succ_iterator I = block->succ_begin(),
@@ -345,7 +345,7 @@ public:
     return Init;
   }
 };
-}
+} // namespace
 
 static const DeclRefExpr *getSelfInitExpr(VarDecl *VD) {
   if (VD->getType()->isRecordType()) return nullptr;
@@ -672,7 +672,7 @@ public:
     return Use;
   }
 };
-}
+} // namespace
 
 void TransferFunctions::reportUse(const Expr *ex, const VarDecl *vd) {
   Value v = vals[vd];
@@ -862,7 +862,7 @@ struct PruneBlocksHandler : public UninitVariablesHandler {
     hadAnyUse = true;
   }
 };
-}
+} // namespace
 
 void clang::runUninitializedVariablesAnalysis(
     const DeclContext &dc,
diff --git a/lib/Basic/DiagnosticIDs.cpp b/lib/Basic/DiagnosticIDs.cpp
index 643503b00b9..baee5aa8e02 100644
--- a/lib/Basic/DiagnosticIDs.cpp
+++ b/lib/Basic/DiagnosticIDs.cpp
@@ -68,7 +68,7 @@ struct StaticDiagInfoRec {
   }
 };
 
-} // namespace anonymous
+} // namespace
 
 static const StaticDiagInfoRec StaticDiagInfo[] = {
 #define DIAG(ENUM, CLASS, DEFAULT_SEVERITY, DESC, GROUP, SFINAE, NOWERROR,     \
@@ -193,7 +193,7 @@ namespace {
       return StringRef(NameStr, NameLen);
     }
   };
-}
+} // namespace
 
 // Unfortunately, the split between DiagnosticIDs and Diagnostic is not
 // particularly clean, but for now we just implement this method here so we can
@@ -292,8 +292,8 @@ namespace clang {
       }
     };
 
-  } // end diag namespace
-} // end clang namespace
+  } // namespace diag
+} // namespace clang
 
 
 //===----------------------------------------------------------------------===//
@@ -497,7 +497,7 @@ namespace {
                        DiagGroupNames[NameOffset]);
     }
   };
-}
+} // namespace
 
 // Second the table of options, sorted by name for fast binary lookup.
 static const WarningOption OptionTable[] = {
diff --git a/lib/Basic/IdentifierTable.cpp b/lib/Basic/IdentifierTable.cpp
index b2950081000..c7bb2c667d3 100644
--- a/lib/Basic/IdentifierTable.cpp
+++ b/lib/Basic/IdentifierTable.cpp
@@ -122,7 +122,7 @@ namespace {
     KS_Enabled,     // Enabled
     KS_Future       // Is a keyword in future standard
   };
-}
+} // namespace
 
 /// \brief Translates flags as specified in TokenKinds.def into keyword status
 /// in the given language standard.
diff --git a/lib/Basic/VirtualFileSystem.cpp b/lib/Basic/VirtualFileSystem.cpp
index 8a882e13f7a..7196f2d1f96 100644
--- a/lib/Basic/VirtualFileSystem.cpp
+++ b/lib/Basic/VirtualFileSystem.cpp
@@ -213,7 +213,7 @@ public:
     return EC;
   }
 };
-}
+} // namespace
 
 directory_iterator RealFileSystem::dir_begin(const Twine &Dir,
                                              std::error_code &EC) {
@@ -1024,7 +1024,7 @@ public:
   JSONWriter(llvm::raw_ostream &OS) : OS(OS) {}
   void write(ArrayRef<YAMLVFSEntry> Entries, Optional<bool> IsCaseSensitive);
 };
-}
+} // namespace
 
 bool JSONWriter::containedIn(StringRef Parent, StringRef Path) {
   using namespace llvm::sys;
diff --git a/lib/CodeGen/BackendUtil.cpp b/lib/CodeGen/BackendUtil.cpp
index f5edea7810a..b133e932c42 100644
--- a/lib/CodeGen/BackendUtil.cpp
+++ b/lib/CodeGen/BackendUtil.cpp
@@ -149,7 +149,7 @@ private:
   const LangOptions &LangOpts;
 };
 
-}
+} // namespace
 
 static void addObjCARCAPElimPass(const PassManagerBuilder &Builder, PassManagerBase &PM) {
   if (Builder.OptLevel > 0)
diff --git a/lib/CodeGen/CGAtomic.cpp b/lib/CodeGen/CGAtomic.cpp
index da82249fe11..57b92dd97dc 100644
--- a/lib/CodeGen/CGAtomic.cpp
+++ b/lib/CodeGen/CGAtomic.cpp
@@ -272,7 +272,7 @@ namespace {
     void EmitAtomicUpdateOp(llvm::AtomicOrdering AO, RValue UpdateRal,
                             bool IsVolatile);
   };
-}
+} // namespace
 
 AtomicExpr::AtomicOrderingKind
 AtomicInfo::translateAtomicOrdering(const llvm::AtomicOrdering AO) {
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp
index 3fd344c389a..d3a3131888c 100644
--- a/lib/CodeGen/CGBlocks.cpp
+++ b/lib/CodeGen/CGBlocks.cpp
@@ -242,7 +242,7 @@ namespace {
     
       return LeftValue > RightValue;
   }
-}
+} // namespace
 
 /// Determines if the given type is safe for constant capture in C++.
 static bool isSafeForCXXConstantCapture(QualType type) {
@@ -2249,7 +2249,7 @@ namespace {
       CGF.BuildBlockRelease(Addr, BLOCK_FIELD_IS_BYREF);
     }
   };
-}
+} // namespace
 
 /// Enter a cleanup to destroy a __block variable.  Note that this
 /// cleanup should be a no-op if the variable hasn't left the stack
diff --git a/lib/CodeGen/CGBlocks.h b/lib/CodeGen/CGBlocks.h
index c4eed0d0e8e..ef43d1b0987 100644
--- a/lib/CodeGen/CGBlocks.h
+++ b/lib/CodeGen/CGBlocks.h
@@ -37,7 +37,7 @@ class FunctionType;
 class PointerType;
 class Value;
 class LLVMContext;
-}
+} // namespace llvm
 
 namespace clang {
 
diff --git a/lib/CodeGen/CGCUDANV.cpp b/lib/CodeGen/CGCUDANV.cpp
index 67d0ab7a82f..0ffdb43d566 100644
--- a/lib/CodeGen/CGCUDANV.cpp
+++ b/lib/CodeGen/CGCUDANV.cpp
@@ -74,7 +74,7 @@ public:
   llvm::Function *makeModuleDtorFunction() override;
 };
 
-}
+} // namespace
 
 CGNVCUDARuntime::CGNVCUDARuntime(CodeGenModule &CGM)
     : CGCUDARuntime(CGM), Context(CGM.getLLVMContext()),
diff --git a/lib/CodeGen/CGCUDARuntime.h b/lib/CodeGen/CGCUDARuntime.h
index dcacf970327..05e36e61311 100644
--- a/lib/CodeGen/CGCUDARuntime.h
+++ b/lib/CodeGen/CGCUDARuntime.h
@@ -59,7 +59,7 @@ public:
 /// Creates an instance of a CUDA runtime class.
 CGCUDARuntime *CreateNVCUDARuntime(CodeGenModule &CGM);
 
-}
-}
+} // namespace CodeGen
+} // namespace clang
 
 #endif
diff --git a/lib/CodeGen/CGCXXABI.h b/lib/CodeGen/CGCXXABI.h
index b6b4ee6850a..b8f3dee07c9 100644
--- a/lib/CodeGen/CGCXXABI.h
+++ b/lib/CodeGen/CGCXXABI.h
@@ -542,7 +542,7 @@ CGCXXABI *CreateItaniumCXXABI(CodeGenModule &CGM);
 /// Creates a Microsoft-family ABI.
 CGCXXABI *CreateMicrosoftCXXABI(CodeGenModule &CGM);
 
-}
-}
+} // namespace CodeGen
+} // namespace clang
 
 #endif
diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp
index 58ef171df0d..4fbcac1b22d 100644
--- a/lib/CodeGen/CGCall.cpp
+++ b/lib/CodeGen/CGCall.cpp
@@ -2843,7 +2843,7 @@ struct DestroyUnpassedArg : EHScopeStack::Cleanup {
   }
 };
 
-}
+} // namespace
 
 struct DisableDebugLocationUpdates {
   CodeGenFunction &CGF;
diff --git a/lib/CodeGen/CGClass.cpp b/lib/CodeGen/CGClass.cpp
index 4d6a4e288dd..cfba8db6324 100644
--- a/lib/CodeGen/CGClass.cpp
+++ b/lib/CodeGen/CGClass.cpp
@@ -384,7 +384,7 @@ namespace {
     // external code might potentially access the vtable.
     void VisitCXXThisExpr(const CXXThisExpr *E) { UsesThis = true; }
   };
-}
+} // namespace
 
 static bool BaseInitializerUsesThis(ASTContext &C, const Expr *Init) {
   DynamicThisUseChecker Checker(C);
@@ -860,7 +860,7 @@ namespace {
     CodeGenFunction &CGF;
     SanitizerSet OldSanOpts;
   };
-}
+} // namespace
 
 namespace {
   class FieldMemcpyizer {
@@ -1228,7 +1228,7 @@ namespace {
     }
   };
 
-}
+} // namespace
 
 /// EmitCtorPrologue - This routine generates necessary code to initialize
 /// base classes and non-static data members belonging to this constructor.
@@ -1531,7 +1531,7 @@ namespace {
                       flags.isForNormalCleanup() && useEHCleanupForArray);
     }
   };
-}
+} // namespace
 
 /// \brief Emit all code that comes at the end of class's
 /// destructor. This is to call destructors on members and base classes
@@ -1892,7 +1892,7 @@ namespace {
                                 /*Delegating=*/true, Addr);
     }
   };
-}
+} // namespace
 
 void
 CodeGenFunction::EmitDelegatingCXXConstructorCall(const CXXConstructorDecl *Ctor,
@@ -1945,7 +1945,7 @@ namespace {
                                 /*Delegating=*/false, Addr);
     }
   };
-}
+} // namespace
 
 void CodeGenFunction::PushDestructorCleanup(const CXXDestructorDecl *D,
                                             llvm::Value *Addr) {
diff --git a/lib/CodeGen/CGCleanup.h b/lib/CodeGen/CGCleanup.h
index 81c64123dfd..792cc07bdb8 100644
--- a/lib/CodeGen/CGCleanup.h
+++ b/lib/CodeGen/CGCleanup.h
@@ -551,7 +551,7 @@ EHScopeStack::stabilize(iterator ir) const {
   return stable_iterator(EndOfBuffer - ir.Ptr);
 }
 
-}
-}
+} // namespace CodeGen
+} // namespace clang
 
 #endif
diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp
index 07dbce4252f..97c0f2af29f 100644
--- a/lib/CodeGen/CGDecl.cpp
+++ b/lib/CodeGen/CGDecl.cpp
@@ -522,7 +522,7 @@ namespace {
       CGF.EmitLifetimeEnd(Size, Addr);
     }
   };
-}
+} // namespace
 
 /// EmitAutoVarWithLifetime - Does the setup required for an automatic
 /// variable with lifetime.
@@ -1586,7 +1586,7 @@ namespace {
                               ElementType, Destroyer);
     }
   };
-}
+} // namespace
 
 /// pushIrregularPartialArrayCleanup - Push an EH cleanup to destroy
 /// already-constructed elements of the given array.  The cleanup
@@ -1651,7 +1651,7 @@ namespace {
       CGF.EmitARCRelease(Param, Precise);
     }
   };
-}
+} // namespace
 
 /// Emit an alloca (or GlobalValue depending on target)
 /// for the specified parameter and set up LocalDeclMap.
diff --git a/lib/CodeGen/CGException.cpp b/lib/CodeGen/CGException.cpp
index 4c8501724bd..935facba1e1 100644
--- a/lib/CodeGen/CGException.cpp
+++ b/lib/CodeGen/CGException.cpp
@@ -110,7 +110,7 @@ namespace {
     static const EHPersonality MSVC_C_specific_handler;
     static const EHPersonality MSVC_CxxFrameHandler3;
   };
-}
+} // namespace
 
 const EHPersonality EHPersonality::GNU_C = { "__gcc_personality_v0", nullptr };
 const EHPersonality
@@ -361,7 +361,7 @@ namespace {
       CGF.EmitNounwindRuntimeCall(getFreeExceptionFn(CGF.CGM), exn);
     }
   };
-}
+} // namespace
 
 // Emits an exception expression into the given location.  This
 // differs from EmitAnyExprToMem only in that, if a final copy-ctor
@@ -1081,7 +1081,7 @@ namespace {
       CGF.EnsureInsertPoint();
     }
   };
-}
+} // namespace
 
 /// Enters a finally block for an implementation using zero-cost
 /// exceptions.  This is mostly general, but hard-codes some
@@ -1332,7 +1332,7 @@ struct PerformSEHFinally : EHScopeStack::Cleanup {
     CGF.EmitCall(FnInfo, OutlinedFinally, ReturnValueSlot(), Args);
   }
 };
-}
+} // namespace
 
 namespace {
 /// Find all local variable captures in the statement.
@@ -1367,7 +1367,7 @@ struct CaptureFinder : ConstStmtVisitor<CaptureFinder> {
     Captures.push_back(ParentThis);
   }
 };
-}
+} // namespace
 
 void CodeGenFunction::EmitCapturedLocals(CodeGenFunction &ParentCGF,
                                          const Stmt *OutlinedStmt,
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index 1a76afaf115..20c3c6b15b5 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -2242,7 +2242,7 @@ enum class CheckRecoverableKind {
   /// Runtime conditionally aborts, always need to support recovery.
   AlwaysRecoverable
 };
-}
+} // namespace
 
 static CheckRecoverableKind getRecoverableKind(SanitizerMask Kind) {
   assert(llvm::countPopulation(Kind) == 1);
diff --git a/lib/CodeGen/CGExprCXX.cpp b/lib/CodeGen/CGExprCXX.cpp
index f0f706d7b95..d3a4fd29d99 100644
--- a/lib/CodeGen/CGExprCXX.cpp
+++ b/lib/CodeGen/CGExprCXX.cpp
@@ -1213,7 +1213,7 @@ namespace {
       EmitNewDeleteCall(CGF, OperatorDelete, FPT, DeleteArgs);
     }
   };
-}
+} // namespace
 
 /// Enter a cleanup to call 'operator delete' if the initializer in a
 /// new-expression throws.
@@ -1437,7 +1437,7 @@ namespace {
       CGF.EmitDeleteCall(OperatorDelete, Ptr, ElementType);
     }
   };
-}
+} // namespace
 
 void
 CodeGenFunction::pushCallObjectDeleteCleanup(const FunctionDecl *OperatorDelete,
@@ -1564,7 +1564,7 @@ namespace {
       EmitNewDeleteCall(CGF, OperatorDelete, DeleteFTy, Args);
     }
   };
-}
+} // namespace
 
 /// Emit the code for deleting an array of objects.
 static void EmitArrayDelete(CodeGenFunction &CGF,
diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp
index acfb9b6dbb2..e88d62425b5 100644
--- a/lib/CodeGen/CGExprConstant.cpp
+++ b/lib/CodeGen/CGExprConstant.cpp
@@ -421,7 +421,7 @@ struct BaseInfo {
 
   bool operator<(const BaseInfo &O) const { return Offset < O.Offset; }
 };
-}
+} // namespace
 
 void ConstStructBuilder::Build(const APValue &Val, const RecordDecl *RD,
                                bool IsPrimaryBase,
diff --git a/lib/CodeGen/CGObjC.cpp b/lib/CodeGen/CGObjC.cpp
index 9981fccb3e9..09f92ad3bee 100644
--- a/lib/CodeGen/CGObjC.cpp
+++ b/lib/CodeGen/CGObjC.cpp
@@ -448,7 +448,7 @@ struct FinishARCDealloc : EHScopeStack::Cleanup {
                                                       method);
   }
 };
-}
+} // namespace
 
 /// StartObjCMethod - Begin emission of an ObjCMethod. This generates
 /// the LLVM function and sets the other context used by
@@ -599,7 +599,7 @@ namespace {
     CharUnits IvarSize;
     CharUnits IvarAlignment;
   };
-}
+} // namespace
 
 /// Pick an implementation strategy for the given property synthesis.
 PropertyImplStrategy::PropertyImplStrategy(CodeGenModule &CGM,
@@ -1296,7 +1296,7 @@ namespace {
                       flags.isForNormalCleanup() && useEHCleanupForArray);
     }
   };
-}
+} // namespace
 
 /// Like CodeGenFunction::destroyARCStrong, but do it with a call.
 static void destroyARCStrongWithStore(CodeGenFunction &CGF,
@@ -1724,7 +1724,7 @@ namespace {
       CGF.EmitARCRelease(object, ARCImpreciseLifetime);
     }
   };
-}
+} // namespace
 
 /// Produce the code for a CK_ARCConsumeObject.  Does a primitive
 /// release at the end of the full-expression.
@@ -2340,7 +2340,7 @@ namespace {
       CGF.EmitObjCMRRAutoreleasePoolPop(Token);
     }
   };
-}
+} // namespace
 
 void CodeGenFunction::EmitObjCAutoreleasePoolCleanup(llvm::Value *Ptr) {
   if (CGM.getLangOpts().ObjCAutoRefCount)
diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index a45446a7065..95326b39871 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -3500,7 +3500,7 @@ namespace {
     void emitWriteHazard();
     void emitHazardsInNewBlocks();
   };
-}
+} // namespace
 
 /// Create the fragile-ABI read and write hazards based on the current
 /// state of the function, which is presumed to be immediately prior
diff --git a/lib/CodeGen/CGObjCRuntime.cpp b/lib/CodeGen/CGObjCRuntime.cpp
index 5290a87cebf..009c0d916f5 100644
--- a/lib/CodeGen/CGObjCRuntime.cpp
+++ b/lib/CodeGen/CGObjCRuntime.cpp
@@ -167,7 +167,7 @@ namespace {
       CGF.EmitRuntimeCallOrInvoke(Fn);
     }
   };
-}
+} // namespace
 
 
 void CGObjCRuntime::EmitTryCatchStmt(CodeGenFunction &CGF,
@@ -307,7 +307,7 @@ namespace {
       CGF.Builder.CreateCall(SyncExitFn, SyncArg)->setDoesNotThrow();
     }
   };
-}
+} // namespace
 
 void CGObjCRuntime::EmitAtSynchronizedStmt(CodeGenFunction &CGF,
                                            const ObjCAtSynchronizedStmt &S,
diff --git a/lib/CodeGen/CGObjCRuntime.h b/lib/CodeGen/CGObjCRuntime.h
index 47525464986..396d8e82960 100644
--- a/lib/CodeGen/CGObjCRuntime.h
+++ b/lib/CodeGen/CGObjCRuntime.h
@@ -295,6 +295,6 @@ public:
 //TODO: This should include some way of selecting which runtime to target.
 CGObjCRuntime *CreateGNUObjCRuntime(CodeGenModule &CGM);
 CGObjCRuntime *CreateMacObjCRuntime(CodeGenModule &CGM);
-}
-}
+} // namespace CodeGen
+} // namespace clang
 #endif
diff --git a/lib/CodeGen/CGOpenCLRuntime.h b/lib/CodeGen/CGOpenCLRuntime.h
index 0c50b92914b..54d979f6491 100644
--- a/lib/CodeGen/CGOpenCLRuntime.h
+++ b/lib/CodeGen/CGOpenCLRuntime.h
@@ -46,7 +46,7 @@ public:
   virtual llvm::Type *convertOpenCLSpecificType(const Type *T);
 };
 
-}
-}
+} // namespace CodeGen
+} // namespace clang
 
 #endif
diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp
index c89d5cc3892..b28770e2566 100644
--- a/lib/CodeGen/CGRecordLayoutBuilder.cpp
+++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp
@@ -212,7 +212,7 @@ private:
   CGRecordLowering(const CGRecordLowering &) = delete;
   void operator =(const CGRecordLowering &) = delete;
 };
-} // namespace {
+} // namespace
 
 CGRecordLowering::CGRecordLowering(CodeGenTypes &Types, const RecordDecl *D,                                 bool Packed)
   : Types(Types), Context(Types.getContext()), D(D),
diff --git a/lib/CodeGen/CodeGenAction.cpp b/lib/CodeGen/CodeGenAction.cpp
index 54e6b73b302..89d01a191b8 100644
--- a/lib/CodeGen/CodeGenAction.cpp
+++ b/lib/CodeGen/CodeGenAction.cpp
@@ -258,7 +258,7 @@ namespace clang {
   };
   
   void BackendConsumer::anchor() {}
-}
+} // namespace clang
 
 /// ConvertBackendLocation - Convert a location in a temporary llvm::SourceMgr
 /// buffer to be a valid FullSourceLoc.
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 2dd5414795e..79a1dcbb4f4 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -1435,7 +1435,7 @@ namespace {
       return true;
     }
   };
-}
+} // namespace
 
 // isTriviallyRecursive - Check if this function calls another
 // decl that, because of the asm attribute or the other decl being a builtin,
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index 8e671fa7878..28582f54b49 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -44,7 +44,7 @@ class DataLayout;
 class FunctionType;
 class LLVMContext;
 class IndexedInstrProfReader;
-}
+} // namespace llvm
 
 namespace clang {
 class TargetCodeGenInfo;
diff --git a/lib/CodeGen/CodeGenPGO.cpp b/lib/CodeGen/CodeGenPGO.cpp
index f182a469b3a..51b44b794ae 100644
--- a/lib/CodeGen/CodeGenPGO.cpp
+++ b/lib/CodeGen/CodeGenPGO.cpp
@@ -605,7 +605,7 @@ struct ComputeRegionCounts : public ConstStmtVisitor<ComputeRegionCounts> {
     RecordNextStmtCount = true;
   }
 };
-}
+} // namespace
 
 void PGOHash::combine(HashType Type) {
   // Check that we never combine 0 and only have six bits.
diff --git a/lib/CodeGen/CoverageMappingGen.cpp b/lib/CodeGen/CoverageMappingGen.cpp
index 9ad5d14edfd..92c206de8f5 100644
--- a/lib/CodeGen/CoverageMappingGen.cpp
+++ b/lib/CodeGen/CoverageMappingGen.cpp
@@ -884,7 +884,7 @@ struct CounterCoverageMappingBuilder
     // propagate counts into them.
   }
 };
-}
+} // namespace
 
 static bool isMachO(const CodeGenModule &CGM) {
   return CGM.getTarget().getTriple().isOSBinFormatMachO();
diff --git a/lib/CodeGen/ItaniumCXXABI.cpp b/lib/CodeGen/ItaniumCXXABI.cpp
index 3f5ad5db01b..a6de4773992 100644
--- a/lib/CodeGen/ItaniumCXXABI.cpp
+++ b/lib/CodeGen/ItaniumCXXABI.cpp
@@ -336,7 +336,7 @@ public:
   // ARM64 libraries are prepared for non-unique RTTI.
   bool shouldRTTIBeUnique() const override { return false; }
 };
-}
+} // namespace
 
 CodeGen::CGCXXABI *CodeGen::CreateItaniumCXXABI(CodeGenModule &CGM) {
   switch (CGM.getTarget().getCXXABI().getKind()) {
@@ -1743,7 +1743,7 @@ namespace {
                                   Guard);
     }
   };
-}
+} // namespace
 
 /// The ARM code here follows the Itanium code closely enough that we
 /// just special-case it at particular places.
@@ -2250,7 +2250,7 @@ public:
   /// \param Force - true to force the creation of this RTTI value
   llvm::Constant *BuildTypeInfo(QualType Ty, bool Force = false);
 };
-}
+} // namespace
 
 llvm::GlobalVariable *ItaniumRTTIBuilder::GetAddrOfTypeName(
     QualType Ty, llvm::GlobalVariable::LinkageTypes Linkage) {
@@ -3347,7 +3347,7 @@ namespace {
       CGF.EmitRuntimeCallOrInvoke(getEndCatchFn(CGF.CGM));
     }
   };
-}
+} // namespace
 
 /// Emits a call to __cxa_begin_catch and enters a cleanup to call
 /// __cxa_end_catch.
diff --git a/lib/CodeGen/MicrosoftCXXABI.cpp b/lib/CodeGen/MicrosoftCXXABI.cpp
index 679516bfa89..f085a908386 100644
--- a/lib/CodeGen/MicrosoftCXXABI.cpp
+++ b/lib/CodeGen/MicrosoftCXXABI.cpp
@@ -707,7 +707,7 @@ private:
   llvm::StructType *CatchHandlerTypeType;
 };
 
-}
+} // namespace
 
 CGCXXABI::RecordArgABI
 MicrosoftCXXABI::getRecordArgABI(const CXXRecordDecl *RD) const {
@@ -2195,7 +2195,7 @@ struct CallInitThreadAbort : EHScopeStack::Cleanup {
     CGF.EmitNounwindRuntimeCall(getInitThreadAbortFn(CGF.CGM), Guard);
   }
 };
-}
+} // namespace
 
 void MicrosoftCXXABI::EmitGuardedInit(CodeGenFunction &CGF, const VarDecl &D,
                                       llvm::GlobalVariable *GV,
diff --git a/lib/CodeGen/ModuleBuilder.cpp b/lib/CodeGen/ModuleBuilder.cpp
index 25e57401fd5..158ee906d07 100644
--- a/lib/CodeGen/ModuleBuilder.cpp
+++ b/lib/CodeGen/ModuleBuilder.cpp
@@ -232,7 +232,7 @@ namespace {
       Builder->AddDependentLib(Lib);
     }
   };
-}
+} // namespace
 
 void CodeGenerator::anchor() { }
 
diff --git a/lib/CodeGen/TargetInfo.cpp b/lib/CodeGen/TargetInfo.cpp
index e77c1242e70..41a826c31e3 100644
--- a/lib/CodeGen/TargetInfo.cpp
+++ b/lib/CodeGen/TargetInfo.cpp
@@ -685,7 +685,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 /// Rewrite input constraint references after adding some output constraints.
 /// In the case where there is one output and one input and we add one output,
@@ -1750,7 +1750,7 @@ void WinX86_64TargetCodeGenInfo::setTargetAttributes(const Decl *D,
 
   addStackProbeSizeTargetAttribute(D, GV, CGM);
 }
-}
+} // namespace
 
 void X86_64ABIInfo::postMerge(unsigned AggregateSize, Class &Lo,
                               Class &Hi) const {
@@ -3151,7 +3151,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 llvm::Value *PPC32_SVR4_ABIInfo::EmitVAArg(llvm::Value *VAListAddr,
                                            QualType Ty,
@@ -3431,7 +3431,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 // Return true if the ABI requires Ty to be passed sign- or zero-
 // extended to 64 bits.
@@ -3977,7 +3977,7 @@ public:
 
   bool doesReturnSlotInterfereWithArgs() const override { return false; }
 };
-}
+} // namespace
 
 ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType Ty) const {
   Ty = useFirstFieldIfTransparentUnion(Ty);
@@ -4605,7 +4605,7 @@ void WindowsARMTargetCodeGenInfo::setTargetAttributes(
   ARMTargetCodeGenInfo::setTargetAttributes(D, GV, CGM);
   addStackProbeSizeTargetAttribute(D, GV, CGM);
 }
-}
+} // namespace
 
 void ARMABIInfo::computeInfo(CGFunctionInfo &FI) const {
   if (!getCXXABI().classifyReturnType(FI))
@@ -5179,7 +5179,7 @@ void NVPTXTargetCodeGenInfo::addNVVMMetadata(llvm::Function *F, StringRef Name,
   // Append metadata to nvvm.annotations
   MD->addOperand(llvm::MDNode::get(Ctx, MDVals));
 }
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // SystemZ ABI Implementation
@@ -5220,7 +5220,7 @@ public:
     : TargetCodeGenInfo(new SystemZABIInfo(CGT, HasVector)) {}
 };
 
-}
+} // namespace
 
 bool SystemZABIInfo::isPromotableIntegerType(QualType Ty) const {
   // Treat an enum type as its underlying type.
@@ -5530,7 +5530,7 @@ public:
                            CodeGen::CodeGenModule &M) const override;
 };
 
-}
+} // namespace
 
 void MSP430TargetCodeGenInfo::setTargetAttributes(const Decl *D,
                                                   llvm::GlobalValue *GV,
@@ -5612,7 +5612,7 @@ public:
     return SizeOfUnwindException;
   }
 };
-}
+} // namespace
 
 void MipsABIInfo::CoerceToIntArgs(
     uint64_t TySize, SmallVectorImpl<llvm::Type *> &ArgList) const {
@@ -5979,7 +5979,7 @@ void TCETargetCodeGenInfo::setTargetAttributes(
   }
 }
 
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // Hexagon ABI Implementation
@@ -6014,7 +6014,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 void HexagonABIInfo::computeInfo(CGFunctionInfo &FI) const {
   if (!getCXXABI().classifyReturnType(FI))
@@ -6128,7 +6128,7 @@ public:
                            CodeGen::CodeGenModule &M) const override;
 };
 
-}
+} // namespace
 
 void AMDGPUTargetCodeGenInfo::setTargetAttributes(
   const Decl *D,
diff --git a/lib/CodeGen/TargetInfo.h b/lib/CodeGen/TargetInfo.h
index bf63265f028..97ac04229ee 100644
--- a/lib/CodeGen/TargetInfo.h
+++ b/lib/CodeGen/TargetInfo.h
@@ -226,6 +226,6 @@ public:
     return 0;
   }
 };
-}
+} // namespace clang
 
 #endif
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 2367914cc0b..2ba969d667b 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -2322,7 +2322,7 @@ enum OpenMPRuntimeKind {
   /// on this runtime library name.
   OMPRT_IOMP5
 };
-}
+} // namespace
 
 /// Compute the desired OpenMP runtime from the flag provided.
 static OpenMPRuntimeKind getOpenMPRuntime(const ToolChain &TC,
diff --git a/lib/Driver/Tools.h b/lib/Driver/Tools.h
index 753f542622f..58ee29bfb91 100644
--- a/lib/Driver/Tools.h
+++ b/lib/Driver/Tools.h
@@ -234,7 +234,7 @@ namespace arm {
   const char* getLLVMArchSuffixForARM(StringRef CPU, StringRef Arch);
 
   void appendEBLinkFlags(const llvm::opt::ArgList &Args, ArgStringList &CmdArgs, const llvm::Triple &Triple);
-}
+} // namespace arm
 
 namespace mips {
   typedef enum {
@@ -252,7 +252,7 @@ namespace mips {
                      StringRef ABIName, StringRef FloatABI);
   bool shouldUseFPXX(const llvm::opt::ArgList &Args, const llvm::Triple &Triple,
                      StringRef CPUName, StringRef ABIName, StringRef FloatABI);
-}
+} // namespace mips
 
 namespace ppc {
   bool hasPPCAbiArg(const llvm::opt::ArgList &Args, const char *Value);
@@ -371,7 +371,7 @@ namespace darwin {
                       const char *LinkingOutput) const override;
   };
 
-}
+} // namespace darwin
 
   /// openbsd -- Directly call GNU Binutils assembler and linker
 namespace openbsd {
@@ -516,7 +516,7 @@ namespace gnutools {
                       const llvm::opt::ArgList &TCArgs,
                       const char *LinkingOutput) const override;
   };
-}
+} // namespace gnutools
 
 namespace nacltools {
   class LLVM_LIBRARY_VISIBILITY AssembleARM : public gnutools::Assemble  {
@@ -542,7 +542,7 @@ namespace nacltools {
                               const llvm::opt::ArgList &TCArgs,
                               const char *LinkingOutput) const override;
   };
-}
+} // namespace nacltools
 
   /// minix -- Directly call GNU Binutils assembler and linker
 namespace minix {
@@ -731,7 +731,7 @@ public:
                     const llvm::opt::ArgList &TCArgs,
                     const char *LinkingOutput) const override;
 };
-}
+} // namespace CrossWindows
 
 /// SHAVE tools -- Directly call moviCompile and moviAsm
 namespace SHAVE {
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index 0feeaa007f3..7ad2feced23 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -293,8 +293,8 @@ template <> struct DocumentListTraits<std::vector<FormatStyle>> {
     return Seq[Index];
   }
 };
-}
-}
+} // namespace yaml
+} // namespace llvm
 
 namespace clang {
 namespace format {
diff --git a/lib/Frontend/ASTConsumers.cpp b/lib/Frontend/ASTConsumers.cpp
index 52776b6a848..28771e2bc7b 100644
--- a/lib/Frontend/ASTConsumers.cpp
+++ b/lib/Frontend/ASTConsumers.cpp
@@ -158,7 +158,7 @@ namespace {
 
     void HandleTopLevelSingleDecl(Decl *D);
   };
-}
+} // namespace
 
 void ASTViewer::HandleTopLevelSingleDecl(Decl *D) {
   if (isa<FunctionDecl>(D) || isa<ObjCMethodDecl>(D)) {
diff --git a/lib/Frontend/ASTUnit.cpp b/lib/Frontend/ASTUnit.cpp
index 01c56bdc4df..3cf202d283d 100644
--- a/lib/Frontend/ASTUnit.cpp
+++ b/lib/Frontend/ASTUnit.cpp
@@ -96,7 +96,7 @@ namespace {
     /// \brief Erase temporary files and the preamble file.
     void Cleanup();
   };
-}
+} // namespace
 
 static llvm::sys::SmartMutex<false> &getOnDiskMutex() {
   static llvm::sys::SmartMutex<false> M(/* recursive = */ true);
@@ -972,7 +972,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 std::unique_ptr<ASTConsumer>
 PrecompilePreambleAction::CreateASTConsumer(CompilerInstance &CI,
@@ -2123,7 +2123,7 @@ namespace {
       return Next.getCodeCompletionTUInfo();
     }
   };
-}
+} // namespace
 
 /// \brief Helper function that computes which global names are hidden by the
 /// local code-completion results.
diff --git a/lib/Frontend/ChainedIncludesSource.cpp b/lib/Frontend/ChainedIncludesSource.cpp
index be30d43a843..1b20df64ab9 100644
--- a/lib/Frontend/ChainedIncludesSource.cpp
+++ b/lib/Frontend/ChainedIncludesSource.cpp
@@ -71,7 +71,7 @@ protected:
   void ReadMethodPool(Selector Sel) override;
   bool LookupUnqualified(LookupResult &R, Scope *S) override;
 };
-}
+} // namespace
 
 static ASTReader *
 createASTReader(CompilerInstance &CI, StringRef pchFile,
diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp
index 34c1a367a3b..7a3391685a4 100644
--- a/lib/Frontend/CompilerInvocation.cpp
+++ b/lib/Frontend/CompilerInvocation.cpp
@@ -1908,7 +1908,7 @@ namespace {
     
     llvm::APInt getAsInteger() const;
   };
-}
+} // namespace
 
 void ModuleSignature::add(uint64_t Value, unsigned int NumBits) {
   CurValue |= Value << CurBit;
diff --git a/lib/Frontend/DependencyFile.cpp b/lib/Frontend/DependencyFile.cpp
index 0995ab4bf07..30fdf946a6a 100644
--- a/lib/Frontend/DependencyFile.cpp
+++ b/lib/Frontend/DependencyFile.cpp
@@ -198,7 +198,7 @@ public:
   bool visitInputFile(StringRef Filename, bool isSystem,
                       bool isOverridden) override;
 };
-}
+} // namespace
 
 DependencyFileGenerator::DependencyFileGenerator(void *Impl)
 : Impl(Impl) { }
diff --git a/lib/Frontend/DependencyGraph.cpp b/lib/Frontend/DependencyGraph.cpp
index 67a977e38be..f384f490e6f 100644
--- a/lib/Frontend/DependencyGraph.cpp
+++ b/lib/Frontend/DependencyGraph.cpp
@@ -57,7 +57,7 @@ public:
   }
   
 };
-}
+} // namespace
 
 void clang::AttachDependencyGraphGen(Preprocessor &PP, StringRef OutputFile,
                                      StringRef SysRoot) {
diff --git a/lib/Frontend/DiagnosticRenderer.cpp b/lib/Frontend/DiagnosticRenderer.cpp
index c63e98dbe4f..52908371d3e 100644
--- a/lib/Frontend/DiagnosticRenderer.cpp
+++ b/lib/Frontend/DiagnosticRenderer.cpp
@@ -87,7 +87,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 static void mergeFixits(ArrayRef<FixItHint> FixItHints,
                         const SourceManager &SM, const LangOptions &LangOpts,
diff --git a/lib/Frontend/FrontendActions.cpp b/lib/Frontend/FrontendActions.cpp
index 6f202a15483..bcfd77e3a86 100644
--- a/lib/Frontend/FrontendActions.cpp
+++ b/lib/Frontend/FrontendActions.cpp
@@ -554,7 +554,7 @@ namespace {
     }
 #undef DUMP_BOOLEAN
   };
-}
+} // namespace
 
 void DumpModuleInfoAction::ExecuteAction() {
   // Set up the output file.
diff --git a/lib/Frontend/HeaderIncludeGen.cpp b/lib/Frontend/HeaderIncludeGen.cpp
index 5732e5b3fb7..f0a2cc63000 100644
--- a/lib/Frontend/HeaderIncludeGen.cpp
+++ b/lib/Frontend/HeaderIncludeGen.cpp
@@ -44,7 +44,7 @@ public:
                    SrcMgr::CharacteristicKind FileType,
                    FileID PrevFID) override;
 };
-}
+} // namespace
 
 void clang::AttachHeaderIncludeGen(Preprocessor &PP, bool ShowAllHeaders,
                                    StringRef OutputPath, bool ShowDepth,
diff --git a/lib/Frontend/ModuleDependencyCollector.cpp b/lib/Frontend/ModuleDependencyCollector.cpp
index 67852dc0203..539f9b008f5 100644
--- a/lib/Frontend/ModuleDependencyCollector.cpp
+++ b/lib/Frontend/ModuleDependencyCollector.cpp
@@ -35,7 +35,7 @@ public:
   bool visitInputFile(StringRef Filename, bool IsSystem,
                       bool IsOverridden) override;
 };
-}
+} // namespace
 
 void ModuleDependencyCollector::attachToASTReader(ASTReader &R) {
   R.addListener(llvm::make_unique<ModuleDependencyListener>(*this));
diff --git a/lib/Frontend/Rewrite/FixItRewriter.cpp b/lib/Frontend/Rewrite/FixItRewriter.cpp
index dc787ac9557..3b8a2077c67 100644
--- a/lib/Frontend/Rewrite/FixItRewriter.cpp
+++ b/lib/Frontend/Rewrite/FixItRewriter.cpp
@@ -69,7 +69,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 bool FixItRewriter::WriteFixedFiles(
             std::vector<std::pair<std::string, std::string> > *RewrittenFiles) {
diff --git a/lib/Frontend/Rewrite/HTMLPrint.cpp b/lib/Frontend/Rewrite/HTMLPrint.cpp
index 22ccfe6936b..b2706110d9f 100644
--- a/lib/Frontend/Rewrite/HTMLPrint.cpp
+++ b/lib/Frontend/Rewrite/HTMLPrint.cpp
@@ -45,7 +45,7 @@ namespace {
     void Initialize(ASTContext &context) override;
     void HandleTranslationUnit(ASTContext &Ctx) override;
   };
-}
+} // namespace
 
 std::unique_ptr<ASTConsumer> clang::CreateHTMLPrinter(raw_ostream *OS,
                                                       Preprocessor &PP,
diff --git a/lib/Frontend/Rewrite/RewriteModernObjC.cpp b/lib/Frontend/Rewrite/RewriteModernObjC.cpp
index e13cdb3a3e5..cfd790c53f7 100644
--- a/lib/Frontend/Rewrite/RewriteModernObjC.cpp
+++ b/lib/Frontend/Rewrite/RewriteModernObjC.cpp
@@ -609,7 +609,7 @@ namespace {
     }
   };
   
-}
+} // namespace
 
 void RewriteModernObjC::RewriteBlocksInFunctionProtoType(QualType funcType,
                                                    NamedDecl *D) {
diff --git a/lib/Frontend/Rewrite/RewriteObjC.cpp b/lib/Frontend/Rewrite/RewriteObjC.cpp
index b2a45b407ba..56f06061960 100644
--- a/lib/Frontend/Rewrite/RewriteObjC.cpp
+++ b/lib/Frontend/Rewrite/RewriteObjC.cpp
@@ -540,7 +540,7 @@ namespace {
                                       std::string &Result) override;
     Stmt *RewriteObjCIvarRefExpr(ObjCIvarRefExpr *IV) override;
   };
-}
+} // namespace
 
 void RewriteObjC::RewriteBlocksInFunctionProtoType(QualType funcType,
                                                    NamedDecl *D) {
diff --git a/lib/Frontend/SerializedDiagnosticReader.cpp b/lib/Frontend/SerializedDiagnosticReader.cpp
index 0ebbd22af27..75fce89a2a7 100644
--- a/lib/Frontend/SerializedDiagnosticReader.cpp
+++ b/lib/Frontend/SerializedDiagnosticReader.cpp
@@ -287,7 +287,7 @@ class SDErrorCategoryType final : public std::error_category {
     llvm_unreachable("Unknown error type!");
   }
 };
-}
+} // namespace
 
 static llvm::ManagedStatic<SDErrorCategoryType> ErrorCategory;
 const std::error_category &clang::serialized_diags::SDErrorCategory() {
diff --git a/lib/Frontend/VerifyDiagnosticConsumer.cpp b/lib/Frontend/VerifyDiagnosticConsumer.cpp
index 55df9361b58..b673efcbabf 100644
--- a/lib/Frontend/VerifyDiagnosticConsumer.cpp
+++ b/lib/Frontend/VerifyDiagnosticConsumer.cpp
@@ -301,7 +301,7 @@ private:
   const char *PEnd; // previous next/search subject end (1-past)
 };
 
-} // namespace anonymous
+} // namespace
 
 /// ParseDirective - Go through the comment and see if it indicates expected
 /// diagnostics. If so, then put them in the appropriate directive list.
diff --git a/lib/Lex/ModuleMap.cpp b/lib/Lex/ModuleMap.cpp
index 6c98d01c170..075a17f68b1 100644
--- a/lib/Lex/ModuleMap.cpp
+++ b/lib/Lex/ModuleMap.cpp
@@ -1066,7 +1066,7 @@ namespace clang {
     
     bool parseModuleMapFile();
   };
-}
+} // namespace clang
 
 SourceLocation ModuleMapParser::consumeToken() {
 retry:
@@ -1260,7 +1260,7 @@ namespace {
     /// \brief The 'exhaustive' attribute.
     AT_exhaustive
   };
-}
+} // namespace
 
 /// \brief Parse a module declaration.
 ///
diff --git a/lib/Lex/PPExpressions.cpp b/lib/Lex/PPExpressions.cpp
index 44513023395..df7eec248df 100644
--- a/lib/Lex/PPExpressions.cpp
+++ b/lib/Lex/PPExpressions.cpp
@@ -52,7 +52,7 @@ public:
   void setEnd(SourceLocation L) { Range.setEnd(L); }
 };
 
-}
+} // namespace
 
 static bool EvaluateDirectiveSubExpr(PPValue &LHS, unsigned MinPrec,
                                      Token &PeekTok, bool ValueLive,
diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp
index 5f63d35c5be..c2750f6a802 100644
--- a/lib/Lex/PTHLexer.cpp
+++ b/lib/Lex/PTHLexer.cpp
@@ -721,7 +721,7 @@ public:
     return CacheExists;
   }
 };
-}
+} // namespace clang
 
 std::unique_ptr<FileSystemStatCache> PTHManager::createStatCache() {
   return llvm::make_unique<PTHStatCache>(*FileLookup);
diff --git a/lib/Lex/Pragma.cpp b/lib/Lex/Pragma.cpp
index 5eb665549e8..9e3d7b0bbed 100644
--- a/lib/Lex/Pragma.cpp
+++ b/lib/Lex/Pragma.cpp
@@ -157,7 +157,7 @@ public:
     Failed = true;
   }
 };
-}
+} // namespace
 
 /// Handle_Pragma - Read a _Pragma directive, slice it up, process it, then
 /// return the first token after the directive.  The _Pragma token has just
diff --git a/lib/Lex/PreprocessingRecord.cpp b/lib/Lex/PreprocessingRecord.cpp
index a423041a2d9..824546a2c88 100644
--- a/lib/Lex/PreprocessingRecord.cpp
+++ b/lib/Lex/PreprocessingRecord.cpp
@@ -195,7 +195,7 @@ struct PPEntityComp {
   }
 };
 
-}
+} // namespace
 
 unsigned PreprocessingRecord::findBeginLocalPreprocessedEntity(
                                                      SourceLocation Loc) const {
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index da759c76522..6ccd7a9dadc 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -485,7 +485,7 @@ class CastExpressionIdValidator : public CorrectionCandidateCallback {
   Token NextToken;
   bool AllowNonTypes;
 };
-}
+} // namespace
 
 /// \brief Parse a cast-expression, or, if \pisUnaryExpression is true, parse
 /// a unary-expression.
diff --git a/lib/Parse/ParseStmt.cpp b/lib/Parse/ParseStmt.cpp
index b658cef234e..d35d658171b 100644
--- a/lib/Parse/ParseStmt.cpp
+++ b/lib/Parse/ParseStmt.cpp
@@ -142,7 +142,7 @@ public:
 private:
   Token NextToken;
 };
-}
+} // namespace
 
 StmtResult
 Parser::ParseStatementOrDeclarationAfterAttributes(StmtVector &Stmts,
diff --git a/lib/Parse/ParseStmtAsm.cpp b/lib/Parse/ParseStmtAsm.cpp
index 8cdae6a74b2..b89e446486d 100644
--- a/lib/Parse/ParseStmtAsm.cpp
+++ b/lib/Parse/ParseStmtAsm.cpp
@@ -174,7 +174,7 @@ private:
     TheParser.Diag(Loc, diag::err_inline_ms_asm_parsing) << D.getMessage();
   }
 };
-}
+} // namespace
 
 /// Parse an identifier in an MS-style inline assembly block.
 ///
diff --git a/lib/Parse/ParseTentative.cpp b/lib/Parse/ParseTentative.cpp
index d63cf24bcdb..76afcda96a2 100644
--- a/lib/Parse/ParseTentative.cpp
+++ b/lib/Parse/ParseTentative.cpp
@@ -1023,7 +1023,7 @@ public:
     return CorrectionCandidateCallback::ValidateCandidate(Candidate);
   }
 };
-}
+} // namespace
 /// isCXXDeclarationSpecifier - Returns TPResult::True if it is a declaration
 /// specifier, TPResult::False if it is not, TPResult::Ambiguous if it could
 /// be either a decl-specifier or a function-style cast, and TPResult::Error
diff --git a/lib/Rewrite/DeltaTree.cpp b/lib/Rewrite/DeltaTree.cpp
index 352fab077a2..4ff3d7d8bf3 100644
--- a/lib/Rewrite/DeltaTree.cpp
+++ b/lib/Rewrite/DeltaTree.cpp
@@ -149,7 +149,7 @@ namespace {
 
     static inline bool classof(const DeltaTreeNode *N) { return !N->isLeaf(); }
   };
-}
+} // namespace
 
 
 /// Destroy - A 'virtual' destructor.
diff --git a/lib/Sema/AnalysisBasedWarnings.cpp b/lib/Sema/AnalysisBasedWarnings.cpp
index 36030b99a30..8c5589b43ae 100644
--- a/lib/Sema/AnalysisBasedWarnings.cpp
+++ b/lib/Sema/AnalysisBasedWarnings.cpp
@@ -99,7 +99,7 @@ namespace {
       }
     }
   };
-}
+} // namespace
 
 /// CheckUnreachable - Check for unreachable code.
 static void CheckUnreachable(Sema &S, AnalysisDeclContext &AC) {
@@ -493,7 +493,7 @@ struct CheckFallThroughDiagnostics {
   }
 };
 
-}
+} // namespace
 
 /// CheckFallThroughForFunctionDef - Check that we don't fall off the end of a
 /// function that should return a value.  Check that we don't fall off the end
@@ -601,7 +601,7 @@ public:
 
   bool doesContainReference() const { return FoundReference; }
 };
-}
+} // namespace
 
 static bool SuggestInitializationFixit(Sema &S, const VarDecl *VD) {
   QualType VariableTy = VD->getType().getCanonicalType();
@@ -1059,7 +1059,7 @@ namespace {
     Sema &S;
     llvm::SmallPtrSet<const CFGBlock *, 16> ReachableBlocks;
   };
-}
+} // namespace
 
 static void DiagnoseSwitchLabelsFallthrough(Sema &S, AnalysisDeclContext &AC,
                                             bool PerFunction) {
@@ -1414,7 +1414,7 @@ private:
     });
   }
 };
-}
+} // namespace
 
 namespace clang {
 namespace {
@@ -1432,7 +1432,8 @@ struct SortDiagBySourceLocation {
     return SM.isBeforeInTranslationUnit(left.first.first, right.first.first);
   }
 };
-}}
+} // namespace
+} // namespace clang
 
 //===----------------------------------------------------------------------===//
 // -Wthread-safety
@@ -1793,7 +1794,9 @@ public:
     Warnings.emplace_back(std::move(Warning), OptionalNotes());
   }
 };
-}}}
+} // namespace
+} // namespace consumed
+} // namespace clang
 
 //===----------------------------------------------------------------------===//
 // AnalysisBasedWarnings - Worker object used by Sema to execute analysis-based
diff --git a/lib/Sema/SemaAccess.cpp b/lib/Sema/SemaAccess.cpp
index 0e973cc5eba..1d7d27c0f0e 100644
--- a/lib/Sema/SemaAccess.cpp
+++ b/lib/Sema/SemaAccess.cpp
@@ -248,7 +248,7 @@ private:
   const CXXRecordDecl *DeclaringClass;
 };
 
-}
+} // namespace
 
 /// Checks whether one class might instantiate to the other.
 static bool MightInstantiateTo(const CXXRecordDecl *From,
@@ -679,7 +679,7 @@ struct ProtectedFriendContext {
     return findFriendship(Cur, 0);
   }
 };
-}
+} // namespace
 
 /// Search for a class P that EC is a friend of, under the constraint
 ///   InstanceContext <= P
diff --git a/lib/Sema/SemaCXXScopeSpec.cpp b/lib/Sema/SemaCXXScopeSpec.cpp
index 9e146ed3a64..aeea26b4e3e 100644
--- a/lib/Sema/SemaCXXScopeSpec.cpp
+++ b/lib/Sema/SemaCXXScopeSpec.cpp
@@ -419,7 +419,7 @@ class NestedNameSpecifierValidatorCCC : public CorrectionCandidateCallback {
   Sema &SRef;
 };
 
-}
+} // namespace
 
 /// \brief Build a new nested-name-specifier for "identifier::", as described
 /// by ActOnCXXNestedNameSpecifier.
diff --git a/lib/Sema/SemaCast.cpp b/lib/Sema/SemaCast.cpp
index d9dc4df9f27..db3f19607fd 100644
--- a/lib/Sema/SemaCast.cpp
+++ b/lib/Sema/SemaCast.cpp
@@ -140,7 +140,7 @@ namespace {
       PlaceholderKind = (BuiltinType::Kind) 0;
     }
   };
-}
+} // namespace
 
 // The Try functions attempt a specific way of casting. If they succeed, they
 // return TC_Success. If their way of casting is not appropriate for the given
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp
index f76727cad88..af49994b261 100644
--- a/lib/Sema/SemaChecking.cpp
+++ b/lib/Sema/SemaChecking.cpp
@@ -3198,7 +3198,7 @@ protected:
                             bool IsStringLocation, Range StringRange,
                             ArrayRef<FixItHint> Fixit = None);
 };
-}
+} // namespace
 
 SourceRange CheckFormatHandler::getFormatStringRange() {
   return OrigFormatExpr->getSourceRange();
@@ -3552,7 +3552,7 @@ public:
                            const Expr *E);
 
 };  
-}
+} // namespace
 
 bool CheckPrintfHandler::HandleInvalidPrintfConversionSpecifier(
                                       const analyze_printf::PrintfSpecifier &FS,
@@ -4275,7 +4275,7 @@ public:
 
   void HandleIncompleteScanList(const char *start, const char *end) override;
 };
-}
+} // namespace
 
 void CheckScanfHandler::HandleIncompleteScanList(const char *start,
                                                  const char *end) {
@@ -7944,7 +7944,7 @@ public:
       Tree.merge(Elts[I]);
   }
 };
-}
+} // namespace
 
 void Sema::CheckUnsequencedOperations(Expr *E) {
   SmallVector<Expr *, 8> WorkList;
@@ -8338,7 +8338,7 @@ namespace {
       Range = e->getSourceRange();
     }
   };
-}
+} // namespace
 
 /// Consider whether capturing the given variable can possibly lead to
 /// a retain cycle.
@@ -8484,7 +8484,7 @@ namespace {
       }
     }
   };
-}
+} // namespace
 
 /// Check whether the given argument is a block which captures a
 /// variable.
@@ -9322,7 +9322,7 @@ bool isLayoutCompatible(ASTContext &C, QualType T1, QualType T2) {
 
   return false;
 }
-}
+} // namespace
 
 //===--- CHECK: pointer_with_type_tag attribute: datatypes should match ----//
 
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp
index ebb6bbcd345..284f7cf8d55 100644
--- a/lib/Sema/SemaCodeComplete.cpp
+++ b/lib/Sema/SemaCodeComplete.cpp
@@ -342,7 +342,7 @@ namespace {
     bool IsImpossibleToSatisfy(const NamedDecl *ND) const;
     //@}    
   };  
-}
+} // namespace
 
 class ResultBuilder::ShadowMapEntry::iterator {
   llvm::PointerUnion<const NamedDecl *, const DeclIndexPair *> DeclOrIterator;
@@ -1264,7 +1264,7 @@ namespace {
       Results.AddResult(Result, CurContext, Hiding, InBaseClass);
     }
   };
-}
+} // namespace
 
 /// \brief Add type specifiers for the current language as keyword results.
 static void AddTypeSpecifierResults(const LangOptions &LangOpts,
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index f750638ea1e..2e62ea66a5f 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -89,7 +89,7 @@ class TypeNameValidatorCCC : public CorrectionCandidateCallback {
   bool AllowClassTemplates;
 };
 
-}
+} // namespace
 
 /// \brief Determine whether the token kind starts a simple-type-specifier.
 bool Sema::isSimpleTypeSpecifier(tok::TokenKind Kind) const {
@@ -2501,7 +2501,7 @@ struct GNUCompatibleParamWarning {
   QualType PromotedType;
 };
 
-}
+} // namespace
 
 /// getSpecialMember - get the special member enum for a method.
 Sema::CXXSpecialMember Sema::getSpecialMember(const CXXMethodDecl *MD) {
@@ -6606,7 +6606,7 @@ class DifferentNameValidatorCCC : public CorrectionCandidateCallback {
   CXXRecordDecl *ExpectedParent;
 };
 
-}
+} // namespace
 
 /// \brief Generate diagnostics for an invalid function redeclaration.
 ///
@@ -8758,7 +8758,7 @@ namespace {
 
     SelfReferenceChecker(S, OrigDecl).CheckExpr(E);
   }
-}
+} // namespace
 
 /// AddInitializerToDecl - Adds the initializer Init to the
 /// declaration dcl. If DirectInit is true, this is C++ direct
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 7ed9bfcb979..471a03e123a 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -145,7 +145,7 @@ namespace {
     return S->Diag(Lambda->getLocStart(), 
                    diag::err_lambda_capture_default_arg);
   }
-}
+} // namespace
 
 void
 Sema::ImplicitExceptionSpecification::CalledDecl(SourceLocation CallLoc,
@@ -2834,7 +2834,7 @@ private:
   CXXRecordDecl *ClassDecl;
 };
 
-}
+} // namespace
 
 /// \brief Handle a C++ member initializer.
 MemInitResult
@@ -3756,7 +3756,7 @@ struct BaseAndFieldInfo {
     return false;
   }
 };
-}
+} // namespace
 
 /// \brief Determine whether the given type is an incomplete or zero-lenfgth
 /// array type.
@@ -4215,7 +4215,7 @@ bool CheckRedundantUnionInit(Sema &S,
 
   return false;
 }
-}
+} // namespace
 
 /// ActOnMemInitializers - Handle the member initializers for a constructor.
 void Sema::ActOnMemInitializers(Decl *ConstructorDecl,
@@ -4637,7 +4637,7 @@ void AbstractUsageInfo::CheckType(const NamedDecl *D, TypeLoc TL,
   CheckAbstractUsage(*this, D).Visit(TL, Sel);
 }
 
-}
+} // namespace
 
 /// Check for invalid uses of an abstract type in a method declaration.
 static void CheckAbstractClassUsage(AbstractUsageInfo &Info,
@@ -5508,7 +5508,7 @@ struct SpecialMemberDeletionInfo {
 
   bool isAccessible(Subobject Subobj, CXXMethodDecl *D);
 };
-}
+} // namespace
 
 /// Is the given special member inaccessible when used on the given
 /// sub-object.
@@ -7517,7 +7517,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 static bool TryNamespaceTypoCorrection(Sema &S, LookupResult &R, Scope *Sc,
                                        CXXScopeSpec &SS,
@@ -8883,7 +8883,7 @@ struct DeclaringSpecialMember {
     return WasAlreadyBeingDeclared;
   }
 };
-}
+} // namespace
 
 CXXConstructorDecl *Sema::DeclareImplicitDefaultConstructor(
                                                      CXXRecordDecl *ClassDecl) {
@@ -9267,7 +9267,7 @@ private:
   typedef llvm::DenseMap<const Type *, InheritingConstructorsForType> MapType;
   MapType Map;
 };
-}
+} // namespace
 
 void Sema::DeclareInheritingConstructors(CXXRecordDecl *ClassDecl) {
   // Defer declaring the inheriting constructors until the class is
@@ -13484,7 +13484,7 @@ namespace {
       return false;
     }
   };
-}
+} // namespace
 
 bool Sema::checkThisInStaticMemberFunctionType(CXXMethodDecl *Method) {
   TypeSourceInfo *TSInfo = Method->getTypeSourceInfo();
diff --git a/lib/Sema/SemaDeclObjC.cpp b/lib/Sema/SemaDeclObjC.cpp
index 543566fdb7c..6ca4734dfe9 100644
--- a/lib/Sema/SemaDeclObjC.cpp
+++ b/lib/Sema/SemaDeclObjC.cpp
@@ -446,7 +446,7 @@ class ObjCInterfaceValidatorCCC : public CorrectionCandidateCallback {
   ObjCInterfaceDecl *CurrentIDecl;
 };
 
-}
+} // namespace
 
 static void diagnoseUseOfProtocols(Sema &TheSema,
                                    ObjCContainerDecl *CD,
@@ -3059,7 +3059,7 @@ private:
     searchFromContainer(container);
   }
 };
-}
+} // namespace
 
 void Sema::CheckObjCMethodOverrides(ObjCMethodDecl *ObjCMethod,
                                     ObjCInterfaceDecl *CurrentClass,
@@ -3717,7 +3717,7 @@ namespace {
       return true;
     }
   };
-}
+} // namespace
 
 void Sema::DiagnoseUnusedBackingIvarInAccessor(Scope *S,
                                           const ObjCImplementationDecl *ImplD) {
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index ffa47eeb587..f26b5368a34 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -1138,7 +1138,7 @@ ExprResult doComplexIntegralCast(Sema &S, Expr *op, QualType toType) {
   return S.ImpCastExprToType(op, S.Context.getComplexType(toType),
                              CK_IntegralComplexCast);
 }
-}
+} // namespace
 
 /// \brief Handle integer arithmetic conversions.  Helper function of
 /// UsualArithmeticConversions()
@@ -4257,7 +4257,7 @@ public:
 private:
   const IdentifierInfo *const FunctionName;
 };
-}
+} // namespace
 
 static TypoCorrection TryTypoCorrectionForCall(Sema &S, Expr *Fn,
                                                FunctionDecl *FDecl,
@@ -11974,7 +11974,7 @@ namespace {
       return E;
     }
   };
-}
+} // namespace
 
 ExprResult Sema::TransformToPotentiallyEvaluated(Expr *E) {
   assert(isUnevaluatedContext() &&
@@ -13310,7 +13310,7 @@ namespace {
     bool TraverseTemplateArgument(const TemplateArgument &Arg);
     bool TraverseRecordType(RecordType *T);
   };
-}
+} // namespace
 
 bool MarkReferencedDecls::TraverseTemplateArgument(
     const TemplateArgument &Arg) {
@@ -13409,7 +13409,7 @@ namespace {
         S.UpdateMarkingForLValueToRValue(E->getSubExpr());
     }
   };
-}
+} // namespace
 
 /// \brief Mark any declarations that appear within this expression or any
 /// potentially-evaluated subexpressions as "referenced".
@@ -13705,7 +13705,7 @@ namespace {
       return resolveDecl(E, E->getDecl());
     }
   };
-}
+} // namespace
 
 /// Given a function expression of unknown-any type, try to rebuild it
 /// to have a function type.
@@ -13796,7 +13796,7 @@ namespace {
       return resolveDecl(E, E->getDecl());
     }
   };
-}
+} // namespace
 
 /// Rebuilds a call expression which yielded __unknown_anytype.
 ExprResult RebuildUnknownAnyExpr::VisitCallExpr(CallExpr *E) {
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp
index 6c839f356fd..43c097e39ed 100644
--- a/lib/Sema/SemaExprCXX.cpp
+++ b/lib/Sema/SemaExprCXX.cpp
@@ -2424,7 +2424,7 @@ private:
   /// in-class initializer.
   MismatchResult analyzeInClassInitializer();
 };
-}
+} // namespace
 
 MismatchingNewDeleteDetector::MismatchResult
 MismatchingNewDeleteDetector::analyzeDeleteExpr(const CXXDeleteExpr *DE) {
@@ -6571,7 +6571,7 @@ public:
     return CacheEntry = ExprError();
   }
 };
-}
+} // namespace
 
 ExprResult
 Sema::CorrectDelayedTyposInExpr(Expr *E, VarDecl *InitDecl,
diff --git a/lib/Sema/SemaExprMember.cpp b/lib/Sema/SemaExprMember.cpp
index e421349338b..d01640a3692 100644
--- a/lib/Sema/SemaExprMember.cpp
+++ b/lib/Sema/SemaExprMember.cpp
@@ -579,7 +579,7 @@ private:
   const RecordDecl *const Record;
 };
 
-}
+} // namespace
 
 static bool LookupMemberExprInRecord(Sema &SemaRef, LookupResult &R,
                                      Expr *BaseExpr,
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp
index 9947fad70dd..f6a5a067ddb 100644
--- a/lib/Sema/SemaExprObjC.cpp
+++ b/lib/Sema/SemaExprObjC.cpp
@@ -1895,7 +1895,7 @@ class ObjCInterfaceOrSuperCCC : public CorrectionCandidateCallback {
   }
 };
 
-}
+} // namespace
 
 Sema::ObjCMessageKind Sema::getObjCMessageKind(Scope *S,
                                                IdentifierInfo *Name,
@@ -3184,7 +3184,7 @@ namespace {
       }
     }
   };
-}
+} // namespace
 
 bool Sema::isKnownName(StringRef name) {
   if (name.empty())
diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index 821d7f64b25..5c149e116a3 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -1915,7 +1915,7 @@ class FieldInitializerValidatorCCC : public CorrectionCandidateCallback {
   RecordDecl *Record;
 };
 
-}
+} // namespace
 
 /// @brief Check the well-formedness of a C99 designated initializer.
 ///
diff --git a/lib/Sema/SemaLookup.cpp b/lib/Sema/SemaLookup.cpp
index 3fd1f21ba3f..b13b99237de 100644
--- a/lib/Sema/SemaLookup.cpp
+++ b/lib/Sema/SemaLookup.cpp
@@ -204,7 +204,7 @@ namespace {
                                                UnqualUsingEntry::Comparator()));
     }
   };
-}
+} // namespace
 
 // Retrieve the set of identifier namespaces that correspond to a
 // specific kind of name lookup.
@@ -875,7 +875,7 @@ struct FindLocalExternScope {
   LookupResult &R;
   bool OldFindLocalExtern;
 };
-}
+} // namespace
 
 bool Sema::CppLookupName(LookupResult &R, Scope *S) {
   assert(getLangOpts().CPlusPlus && "Can perform only C++ lookup");
@@ -2121,7 +2121,7 @@ namespace {
     Sema::AssociatedClassSet &Classes;
     SourceLocation InstantiationLoc;
   };
-}
+} // namespace
 
 static void
 addAssociatedClassesAndNamespaces(AssociatedLookup &Result, QualType T);
diff --git a/lib/Sema/SemaOpenMP.cpp b/lib/Sema/SemaOpenMP.cpp
index e609fcf1d9b..b6559b2e217 100644
--- a/lib/Sema/SemaOpenMP.cpp
+++ b/lib/Sema/SemaOpenMP.cpp
@@ -4924,7 +4924,7 @@ public:
       Diags.popMappings(SavedLoc);
   }
 };
-}
+} // namespace
 
 OMPClause *Sema::ActOnOpenMPFirstprivateClause(ArrayRef<Expr *> VarList,
                                                SourceLocation StartLoc,
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp
index a0fdcd78e59..072dc55c0a6 100644
--- a/lib/Sema/SemaOverload.cpp
+++ b/lib/Sema/SemaOverload.cpp
@@ -536,7 +536,7 @@ namespace {
   struct DFIParamWithArguments : DFIArguments {
     TemplateParameter Param;
   };
-}
+} // namespace
 
 /// \brief Convert from Sema's representation of template deduction information
 /// to the form used in overload-candidate information.
@@ -794,7 +794,7 @@ namespace {
         *i->Addr = i->Saved;
     }
   };
-}
+} // namespace
 
 /// checkPlaceholderForOverload - Do any interesting placeholder-like
 /// preprocessing on the given expression.
@@ -9555,7 +9555,7 @@ struct CompareOverloadCandidatesForDisplay {
     return S.SourceMgr.isBeforeInTranslationUnit(LLoc, RLoc);
   }
 };
-}
+} // namespace
 
 /// CompleteNonViableCandidate - Normally, overload resolution only
 /// computes up to the first. Produces the FixIt set if possible.
@@ -9747,7 +9747,7 @@ struct CompareTemplateSpecCandidatesForDisplay {
     return S.SourceMgr.isBeforeInTranslationUnit(LLoc, RLoc);
   }
 };
-}
+} // namespace
 
 /// Diagnose a template argument deduction failure.
 /// We are treating these failures as overload failures due to bad
@@ -10165,7 +10165,7 @@ public:
     return &Matches[0].first;
   }
 };
-}
+} // namespace
 
 /// ResolveAddressOfOverloadedFunction - Try to resolve the address of
 /// an overloaded function (C++ [over.over]), where @p From is an
@@ -10632,7 +10632,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 static std::unique_ptr<CorrectionCandidateCallback>
 MakeValidator(Sema &SemaRef, MemberExpr *ME, size_t NumArgs,
diff --git a/lib/Sema/SemaPseudoObject.cpp b/lib/Sema/SemaPseudoObject.cpp
index 3e465af9632..a3899883d17 100644
--- a/lib/Sema/SemaPseudoObject.cpp
+++ b/lib/Sema/SemaPseudoObject.cpp
@@ -338,7 +338,7 @@ namespace {
    ExprResult buildGet() override;
    ExprResult buildSet(Expr *op, SourceLocation, bool) override;
  };
-}
+} // namespace
 
 /// Capture the given expression in an OpaqueValueExpr.
 OpaqueValueExpr *PseudoOpBuilder::capture(Expr *e) {
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index 50e4345216a..a7e56e7d06b 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -530,7 +530,7 @@ namespace {
       return LHS < RHS.first;
     }
   };
-}
+} // namespace
 
 /// CmpCaseVals - Comparison predicate for sorting case values.
 ///
@@ -1904,7 +1904,7 @@ VarDecl *BuildForRangeVarDecl(Sema &SemaRef, SourceLocation Loc,
   return Decl;
 }
 
-}
+} // namespace
 
 static bool ObjCEnumerationCollection(Expr *Collection) {
   return !Collection->isTypeDependent()
@@ -2116,7 +2116,7 @@ struct InvalidateOnErrorScope {
   Decl *D;
   bool Enabled;
 };
-}
+} // namespace
 
 /// BuildCXXForRangeStmt - Build or instantiate a C++11 for-range statement.
 StmtResult
@@ -2952,7 +2952,7 @@ bool LocalTypedefNameReferencer::VisitRecordType(const RecordType *RT) {
         S.MarkAnyDeclReferenced(T->getLocation(), T, /*OdrUse=*/false);
   return true;
 }
-}
+} // namespace
 
 TypeLoc Sema::getReturnTypeLoc(FunctionDecl *FD) const {
   TypeLoc TL = FD->getTypeSourceInfo()->getTypeLoc().IgnoreParens();
@@ -3489,7 +3489,7 @@ template <> struct DenseMapInfo<CatchHandlerType> {
 template <> struct isPodLike<CatchHandlerType> {
   static const bool value = true;
 };
-}
+} // namespace llvm
 
 namespace {
 class CatchTypePublicBases {
@@ -3526,7 +3526,7 @@ public:
     return false;
   }
 };
-}
+} // namespace
 
 /// ActOnCXXTryBlock - Takes a try compound-statement and a number of
 /// handlers and creates a try statement from them.
diff --git a/lib/Sema/SemaTemplate.cpp b/lib/Sema/SemaTemplate.cpp
index f4740a5cd85..5c3a0158891 100644
--- a/lib/Sema/SemaTemplate.cpp
+++ b/lib/Sema/SemaTemplate.cpp
@@ -1549,7 +1549,7 @@ struct DependencyChecker : RecursiveASTVisitor<DependencyChecker> {
     return TraverseType(T->getInjectedSpecializationType());
   }
 };
-}
+} // namespace
 
 /// Determines whether a given type depends on the given parameter
 /// list.
@@ -3953,7 +3953,7 @@ namespace {
     bool VisitTagDecl(const TagDecl *Tag);
     bool VisitNestedNameSpecifier(NestedNameSpecifier *NNS);
   };
-}
+} // namespace
 
 bool UnnamedLocalNoLinkageFinder::VisitBuiltinType(const BuiltinType*) {
   return false;
@@ -8220,7 +8220,7 @@ namespace {
       return E;
     }
   };
-}
+} // namespace
 
 /// \brief Rebuilds a type within the context of the current instantiation.
 ///
diff --git a/lib/Sema/SemaTemplateDeduction.cpp b/lib/Sema/SemaTemplateDeduction.cpp
index 6f676ad7c55..c5b73f53c55 100644
--- a/lib/Sema/SemaTemplateDeduction.cpp
+++ b/lib/Sema/SemaTemplateDeduction.cpp
@@ -58,7 +58,7 @@ namespace clang {
     /// terms of noreturn and default calling convention adjustments.
     TDF_InOverloadResolution = 0x20
   };
-}
+} // namespace clang
 
 using namespace clang;
 
@@ -3913,7 +3913,7 @@ namespace {
       return TransformType(TLB, TL);
     }
   };
-}
+} // namespace
 
 Sema::DeduceAutoResult
 Sema::DeduceAutoType(TypeSourceInfo *Type, Expr *&Init, QualType &Result) {
diff --git a/lib/Sema/SemaTemplateInstantiate.cpp b/lib/Sema/SemaTemplateInstantiate.cpp
index 82ff7c0ca4f..b9890d0fd3f 100644
--- a/lib/Sema/SemaTemplateInstantiate.cpp
+++ b/lib/Sema/SemaTemplateInstantiate.cpp
@@ -844,7 +844,7 @@ namespace {
                                                SourceLocation loc,
                                                TemplateArgument arg);
   };
-}
+} // namespace
 
 bool TemplateInstantiator::AlreadyTransformed(QualType T) {
   if (T.isNull())
diff --git a/lib/Sema/SemaTemplateVariadic.cpp b/lib/Sema/SemaTemplateVariadic.cpp
index fd3ba3549b4..6a31125c1f8 100644
--- a/lib/Sema/SemaTemplateVariadic.cpp
+++ b/lib/Sema/SemaTemplateVariadic.cpp
@@ -195,7 +195,7 @@ namespace {
       return true;
     }
   };
-}
+} // namespace
 
 /// \brief Determine whether it's possible for an unexpanded parameter pack to
 /// be valid in this location. This only happens when we're in a declaration
@@ -806,7 +806,7 @@ class ParameterPackValidatorCCC : public CorrectionCandidateCallback {
   }
 };
 
-}
+} // namespace
 
 /// \brief Called when an expression computing the size of a parameter pack
 /// is parsed.
diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp
index d72f2595abe..88633d21ac4 100644
--- a/lib/Sema/SemaType.cpp
+++ b/lib/Sema/SemaType.cpp
@@ -242,7 +242,7 @@ namespace {
       savedAttrs.back()->setNext(nullptr);
     }
   };
-}
+} // namespace
 
 static void spliceAttrIntoList(AttributeList &attr, AttributeList *&head) {
   attr.setNext(head);
@@ -1409,7 +1409,7 @@ namespace {
 ///
 /// The values of this enum are used in diagnostics.
 enum QualifiedFunctionKind { QFK_BlockPointer, QFK_Pointer, QFK_Reference };
-}
+} // namespace
 
 /// Check whether the type T is a qualified function type, and if it is,
 /// diagnose that it cannot be contained within the given kind of declarator.
@@ -4399,7 +4399,7 @@ namespace {
       llvm_unreachable("unsupported TypeLoc kind in declarator!");
     }
   };
-}
+} // namespace
 
 static void fillAtomicQualLoc(AtomicTypeLoc ATL, const DeclaratorChunk &Chunk) {
   SourceLocation Loc;
@@ -4990,7 +4990,7 @@ namespace {
       llvm_unreachable("unknown wrapping kind");
     }
   };
-}
+} // namespace
 
 static bool handleMSPointerTypeQualifierAttr(TypeProcessingState &State,
                                              AttributeList &Attr,
@@ -5897,7 +5897,7 @@ namespace {
       S.Diag(Loc, DiagID) << T;
     }
   };
-}
+} // namespace
 
 bool Sema::RequireCompleteExprType(Expr *E, unsigned DiagID) {
   TypeDiagnoserDiag Diagnoser(DiagID);
diff --git a/lib/Sema/TypeLocBuilder.h b/lib/Sema/TypeLocBuilder.h
index 82844b39146..ed948676b67 100644
--- a/lib/Sema/TypeLocBuilder.h
+++ b/lib/Sema/TypeLocBuilder.h
@@ -146,6 +146,6 @@ private:
   }
 };
 
-}
+} // namespace clang
 
 #endif
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index 7242793be22..5ecedc7df0d 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -1686,7 +1686,7 @@ namespace {
     // files.
     IdentifierInfo *getIdentifierInfo() const { return Found; }
   };
-}
+} // namespace
 
 void ASTReader::updateOutOfDateIdentifier(IdentifierInfo &II) {
   // Note that we are loading an identifier.
@@ -3954,7 +3954,7 @@ namespace {
                                       SuggestedPredefines, ExistingLangOpts);
     }
   };
-}
+} // namespace
 
 bool ASTReader::readASTFileControlBlock(
     StringRef Filename, FileManager &FileMgr,
@@ -4739,7 +4739,7 @@ struct PPEntityComp {
   }
 };
 
-}
+} // namespace
 
 PreprocessedEntityID ASTReader::findPreprocessedEntity(SourceLocation Loc,
                                                        bool EndsAfter) const {
@@ -4859,7 +4859,7 @@ namespace {
     
     Optional<HeaderFileInfo> getHeaderFileInfo() const { return HFI; }
   };
-}
+} // namespace
 
 HeaderFileInfo ASTReader::GetHeaderFileInfo(const FileEntry *FE) {
   HeaderFileInfoVisitor Visitor(FE);
@@ -6192,7 +6192,7 @@ namespace {
       return false;
     }
   };
-}
+} // namespace
 
 ExternalLoadResult ASTReader::FindExternalLexicalDecls(const DeclContext *DC,
                                          bool (*isKindWeWant)(Decl::Kind),
@@ -6237,7 +6237,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 void ASTReader::FindFileRegionDecls(FileID File,
                                     unsigned Offset, unsigned Length,
@@ -6355,7 +6355,7 @@ namespace {
       return FoundAnything;
     }
   };
-}
+} // namespace
 
 /// \brief Retrieve the "definitive" module file for the definition of the
 /// given declaration context, if there is one.
@@ -6504,7 +6504,7 @@ namespace {
       return FoundAnything && !This->VisitAll;
     }
   };
-}
+} // namespace
 
 void ASTReader::completeVisibleDeclsMap(const DeclContext *DC) {
   if (!DC->hasExternalVisibleStorage())
@@ -6848,7 +6848,7 @@ namespace clang {
 
     StringRef Next() override;
   };
-}
+} // namespace clang
 
 ASTIdentifierIterator::ASTIdentifierIterator(const ASTReader &Reader)
   : Reader(Reader), Index(Reader.ModuleMgr.size() - 1) {
@@ -6960,7 +6960,8 @@ namespace clang { namespace serialization {
     }
     bool factoryHasMoreThanOneDecl() const { return FactoryHasMoreThanOneDecl; }
   };
-} } // end namespace clang::serialization
+} // namespace serialization
+ } // namespace clang
 
 /// \brief Add the given set of methods to the method list.
 static void addMethodsToPool(Sema &S, ArrayRef<ObjCMethodDecl *> Methods,
diff --git a/lib/Serialization/ASTReaderDecl.cpp b/lib/Serialization/ASTReaderDecl.cpp
index 00ebd3ebe8e..136ef1a4253 100644
--- a/lib/Serialization/ASTReaderDecl.cpp
+++ b/lib/Serialization/ASTReaderDecl.cpp
@@ -387,7 +387,7 @@ namespace clang {
       }
     }
   };
-}
+} // namespace clang
 
 namespace {
 /// Iterator over the redeclarations of a declaration that have already
@@ -423,7 +423,7 @@ public:
     return A.Current != B.Current;
   }
 };
-}
+} // namespace
 template<typename DeclT>
 llvm::iterator_range<MergedRedeclIterator<DeclT>> merged_redecls(DeclT *D) {
   return llvm::iterator_range<MergedRedeclIterator<DeclT>>(
@@ -2934,7 +2934,7 @@ void ASTDeclReader::attachPreviousDeclImpl(ASTReader &Reader,
           std::make_pair(Canon, IsUnresolved ? PrevFD : FD));
   }
 }
-}
+} // namespace clang
 void ASTDeclReader::attachPreviousDeclImpl(ASTReader &Reader, ...) {
   llvm_unreachable("attachPreviousDecl on non-redeclarable declaration");
 }
@@ -3490,7 +3490,7 @@ namespace {
       return Chain;
     }
   };
-}
+} // namespace
 
 void ASTReader::loadPendingDeclChain(Decl *CanonDecl) {
   // The decl might have been merged into something else after being added to
@@ -3647,7 +3647,7 @@ namespace {
       return true;
     }
   };
-}
+} // namespace
 
 void ASTReader::loadObjCCategories(serialization::GlobalDeclID ID,
                                    ObjCInterfaceDecl *D,
diff --git a/lib/Serialization/ASTReaderInternals.h b/lib/Serialization/ASTReaderInternals.h
index d1b032b27ac..9a1532780a0 100644
--- a/lib/Serialization/ASTReaderInternals.h
+++ b/lib/Serialization/ASTReaderInternals.h
@@ -241,8 +241,8 @@ public:
 typedef llvm::OnDiskChainedHashTable<HeaderFileInfoTrait>
   HeaderFileInfoLookupTable;
   
-} // end namespace clang::serialization::reader
-} // end namespace clang::serialization
+} // namespace reader
+} // namespace serialization
 } // end namespace clang
 
 
diff --git a/lib/Serialization/ASTReaderStmt.cpp b/lib/Serialization/ASTReaderStmt.cpp
index c15f6b0b552..ae22101b99d 100644
--- a/lib/Serialization/ASTReaderStmt.cpp
+++ b/lib/Serialization/ASTReaderStmt.cpp
@@ -103,7 +103,7 @@ namespace clang {
     void Visit##Type(Type *);
 #include "clang/AST/StmtNodes.inc"
   };
-}
+} // namespace clang
 
 void ASTStmtReader::
 ReadTemplateKWAndArgsInfo(ASTTemplateKWAndArgsInfo &Args,
@@ -1699,7 +1699,7 @@ public:
 #include "clang/Basic/OpenMPKinds.def"
   OMPClause *readClause();
 };
-}
+} // namespace clang
 
 OMPClause *OMPClauseReader::readClause() {
   OMPClause *C;
diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp
index 5bb0bec4f56..45ab99cc116 100644
--- a/lib/Serialization/ASTWriter.cpp
+++ b/lib/Serialization/ASTWriter.cpp
@@ -98,7 +98,7 @@ namespace {
 #define ABSTRACT_TYPE(Class, Base)
 #include "clang/AST/TypeNodes.def"
   };
-}
+} // namespace
 
 void ASTTypeWriter::VisitBuiltinType(const BuiltinType *T) {
   llvm_unreachable("Built-in types are never serialized");
@@ -458,7 +458,7 @@ public:
   void VisitFunctionTypeLoc(FunctionTypeLoc TyLoc);
 };
 
-}
+} // namespace
 
 void TypeLocWriter::VisitQualifiedTypeLoc(QualifiedTypeLoc TL) {
   // nothing to do
diff --git a/lib/Serialization/ASTWriterDecl.cpp b/lib/Serialization/ASTWriterDecl.cpp
index 6c5bc5bbd48..0f813302f8f 100644
--- a/lib/Serialization/ASTWriterDecl.cpp
+++ b/lib/Serialization/ASTWriterDecl.cpp
@@ -193,7 +193,7 @@ namespace clang {
       Record.append(LazySpecializations.begin(), LazySpecializations.end());
     }
   };
-}
+} // namespace clang
 
 void ASTDeclWriter::Visit(Decl *D) {
   DeclVisitor<ASTDeclWriter>::Visit(D);
diff --git a/lib/Serialization/ASTWriterStmt.cpp b/lib/Serialization/ASTWriterStmt.cpp
index a461d3f6639..f58ce5fae4e 100644
--- a/lib/Serialization/ASTWriterStmt.cpp
+++ b/lib/Serialization/ASTWriterStmt.cpp
@@ -47,7 +47,7 @@ namespace clang {
     void Visit##Type(Type *);
 #include "clang/AST/StmtNodes.inc"
   };
-}
+} // namespace clang
 
 void ASTStmtWriter::
 AddTemplateKWAndArgsInfo(const ASTTemplateKWAndArgsInfo &Args) {
@@ -1708,7 +1708,7 @@ public:
 #include "clang/Basic/OpenMPKinds.def"
   void writeClause(OMPClause *C);
 };
-}
+} // namespace clang
 
 void OMPClauseWriter::writeClause(OMPClause *C) {
   Record.push_back(C->getClauseKind());
diff --git a/lib/Serialization/GlobalModuleIndex.cpp b/lib/Serialization/GlobalModuleIndex.cpp
index 2c7da3e82a4..1a6fc78c5b2 100644
--- a/lib/Serialization/GlobalModuleIndex.cpp
+++ b/lib/Serialization/GlobalModuleIndex.cpp
@@ -52,7 +52,7 @@ namespace {
     /// \brief The index for identifiers.
     IDENTIFIER_INDEX
   };
-}
+} // namespace
 
 /// \brief The name of the global index file.
 static const char * const IndexFileName = "modules.idx";
@@ -121,7 +121,7 @@ public:
 typedef llvm::OnDiskIterableChainedHashTable<IdentifierIndexReaderTrait>
     IdentifierIndexTable;
 
-}
+} // namespace
 
 GlobalModuleIndex::GlobalModuleIndex(std::unique_ptr<llvm::MemoryBuffer> Buffer,
                                      llvm::BitstreamCursor Cursor)
@@ -430,7 +430,7 @@ namespace {
     /// \brief Write the index to the given bitstream.
     void writeIndex(llvm::BitstreamWriter &Stream);
   };
-}
+} // namespace
 
 static void emitBlockID(unsigned ID, const char *Name,
                         llvm::BitstreamWriter &Stream,
@@ -493,7 +493,7 @@ namespace {
       return std::make_pair(k, IsInteresting);
     }
   };
-}
+} // namespace
 
 bool GlobalModuleIndexBuilder::loadModuleFile(const FileEntry *File) {
   // Open the module file.
@@ -684,7 +684,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 void GlobalModuleIndexBuilder::writeIndex(llvm::BitstreamWriter &Stream) {
   using namespace llvm;
@@ -882,7 +882,7 @@ namespace {
       return Result;
     }
   };
-}
+} // namespace
 
 IdentifierIterator *GlobalModuleIndex::createIdentifierIterator() const {
   IdentifierIndexTable &Table =
diff --git a/lib/Serialization/ModuleManager.cpp b/lib/Serialization/ModuleManager.cpp
index 03d8ed0e246..f5dff2c1658 100644
--- a/lib/Serialization/ModuleManager.cpp
+++ b/lib/Serialization/ModuleManager.cpp
@@ -534,7 +534,7 @@ namespace llvm {
       return M->ModuleName;
     }
   };
-}
+} // namespace llvm
 
 void ModuleManager::viewGraph() {
   llvm::ViewGraph(*this, "Modules");
diff --git a/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp b/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
index e462e2b2f15..6c83bdbf24f 100644
--- a/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
+++ b/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
@@ -63,7 +63,7 @@ public:
   void dump() const;
   void dumpToStream(raw_ostream &os) const;
 };
-}
+} // namespace
 
 static SVal computeExtentBegin(SValBuilder &svalBuilder, 
                                const MemRegion *region) {
diff --git a/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp b/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
index 3fd55760bc5..780d80a4b72 100644
--- a/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
+++ b/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
@@ -132,7 +132,7 @@ namespace {
     void checkPostStmt(const ObjCArrayLiteral *AL,
                        CheckerContext &C) const;
   };
-}
+} // namespace
 
 void NilArgChecker::warnIfNilExpr(const Expr *E,
                                   const char *Msg,
@@ -631,7 +631,7 @@ class ClassReleaseChecker : public Checker<check::PreObjCMessage> {
 public:
   void checkPreObjCMessage(const ObjCMethodCall &msg, CheckerContext &C) const;
 };
-}
+} // namespace
 
 void ClassReleaseChecker::checkPreObjCMessage(const ObjCMethodCall &msg,
                                               CheckerContext &C) const {
@@ -692,7 +692,7 @@ class VariadicMethodTypeChecker : public Checker<check::PreObjCMessage> {
 public:
   void checkPreObjCMessage(const ObjCMethodCall &msg, CheckerContext &C) const;
 };
-}
+} // namespace
 
 /// isVariadicMessage - Returns whether the given message is a variadic message,
 /// where all arguments must be Objective-C types.
@@ -855,7 +855,7 @@ public:
                                      const CallEvent *Call,
                                      PointerEscapeKind Kind) const;
 };
-}
+} // namespace
 
 static bool isKnownNonNilCollectionType(QualType T) {
   const ObjCObjectPointerType *PT = T->getAs<ObjCObjectPointerType>();
@@ -1208,7 +1208,7 @@ public:
 
   void checkPostObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const;
 };
-}
+} // namespace
 
 ProgramStateRef
 ObjCNonNilReturnValueChecker::assumeExprIsNonNull(const Expr *NonNullExpr,
diff --git a/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp b/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
index abfb971d4cc..f698d1beb45 100644
--- a/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
@@ -184,7 +184,7 @@ public:
     walker.Visit(D->getBody());
   }
 };
-}
+} // namespace
 
 void ento::registerCStringSyntaxChecker(CheckerManager &mgr) {
   mgr.registerChecker<CStringSyntaxChecker>();
diff --git a/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp b/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
index 339af8f0332..5b5fe1ca054 100644
--- a/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
+++ b/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
@@ -241,7 +241,7 @@ public:
                      BR);
   }
 };
-}
+} // namespace
 
 void ento::registerObjCDeallocChecker(CheckerManager &mgr) {
   mgr.registerChecker<ObjCDeallocChecker>();
diff --git a/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp b/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
index 0beb917833d..81cd028668c 100644
--- a/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
+++ b/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
@@ -756,7 +756,7 @@ public:
     walker.Visit(D->getBody());
   }
 };
-}
+} // namespace
 
 #define REGISTER_CHECKER(name)                                                 \
   void ento::register##name(CheckerManager &mgr) {                             \
diff --git a/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp b/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
index a61e658f69c..60826642393 100644
--- a/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
+++ b/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp
@@ -34,7 +34,7 @@ public:
   void VisitStmt(Stmt *S) { VisitChildren(S); }
   void VisitChildren(Stmt *S);
 };
-}
+} // namespace
 
 void WalkAST::VisitChildren(Stmt *S) {
   for (Stmt::child_iterator I = S->child_begin(), E = S->child_end(); I!=E; ++I)
diff --git a/lib/StaticAnalyzer/Checkers/ClangSACheckers.h b/lib/StaticAnalyzer/Checkers/ClangSACheckers.h
index 05b4a61c5af..81cb6a60327 100644
--- a/lib/StaticAnalyzer/Checkers/ClangSACheckers.h
+++ b/lib/StaticAnalyzer/Checkers/ClangSACheckers.h
@@ -30,8 +30,8 @@ class CheckerRegistry;
 #undef CHECKER
 #undef GET_CHECKERS
 
-} // end ento namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp b/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
index f4be5b3e82f..1494dccaa05 100644
--- a/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
@@ -77,7 +77,7 @@ public:
     return reachable[block->getBlockID()];
   }
 };
-}
+} // namespace
 
 void ReachableCode::computeReachableBlocks() {
   if (!cfg.getNumBlockIDs())
@@ -445,7 +445,7 @@ public:
     }
   }
 };
-}
+} // namespace
 
 void ento::registerDeadStoresChecker(CheckerManager &mgr) {
   mgr.registerChecker<DeadStoresChecker>();
diff --git a/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp b/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
index 51e7a3d3ce3..ee486b246ed 100644
--- a/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
+++ b/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp
@@ -40,7 +40,7 @@ public:
     }
   }
 };
-}
+} // namespace
 
 void ento::registerDominatorsTreeDumper(CheckerManager &mgr) {
   mgr.registerChecker<DominatorsTreeDumper>();
@@ -60,7 +60,7 @@ public:
     }
   }
 };
-}
+} // namespace
 
 void ento::registerLiveVariablesDumper(CheckerManager &mgr) {
   mgr.registerChecker<LiveVariablesDumper>();
@@ -80,7 +80,7 @@ public:
     }
   }
 };
-}
+} // namespace
 
 void ento::registerCFGViewer(CheckerManager &mgr) {
   mgr.registerChecker<CFGViewer>();
@@ -106,7 +106,7 @@ public:
     }
   }
 };
-}
+} // namespace
 
 void ento::registerCFGDumper(CheckerManager &mgr) {
   mgr.registerChecker<CFGDumper>();
@@ -126,7 +126,7 @@ public:
     CG.viewGraph();
   }
 };
-}
+} // namespace
 
 void ento::registerCallGraphViewer(CheckerManager &mgr) {
   mgr.registerChecker<CallGraphViewer>();
@@ -146,7 +146,7 @@ public:
     CG.dump();
   }
 };
-}
+} // namespace
 
 void ento::registerCallGraphDumper(CheckerManager &mgr) {
   mgr.registerChecker<CallGraphDumper>();
@@ -185,7 +185,7 @@ public:
     llvm::errs() << "[stats]\n" << "num-entries = " << Keys.size() << '\n';
   }
 };
-}
+} // namespace
 
 void ento::registerConfigDumper(CheckerManager &mgr) {
   mgr.registerChecker<ConfigDumper>();
diff --git a/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp b/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
index 0bcebf6e774..7696fabe5b8 100644
--- a/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
+++ b/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp
@@ -205,7 +205,7 @@ void DirectIvarAssignment::MethodCrawler::VisitBinaryOperator(
     }
   }
 }
-}
+} // namespace
 
 // Register the checker that checks for direct accesses in all functions,
 // except for the initialization and copy routines.
diff --git a/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp b/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
index 43a28121877..6317e37d88f 100644
--- a/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
+++ b/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp
@@ -41,7 +41,7 @@ public:
   void checkPostStmt(const ImplicitCastExpr *CastE, CheckerContext &C) const;
   void checkPostStmt(const CXXNewExpr *NewE, CheckerContext &C) const;
 };
-}
+} // namespace
 
 static void recordFixedType(const MemRegion *Region, const CXXMethodDecl *MD,
                             CheckerContext &C) {
diff --git a/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp b/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
index f36ec2c687f..ef7ba1670c4 100644
--- a/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
@@ -31,7 +31,7 @@ class ExprInspectionChecker : public Checker< eval::Call > {
 public:
   bool evalCall(const CallExpr *CE, CheckerContext &C) const;
 };
-}
+} // namespace
 
 bool ExprInspectionChecker::evalCall(const CallExpr *CE,
                                      CheckerContext &C) const {
diff --git a/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp b/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
index 02c12095b5a..e71fb14e8df 100644
--- a/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/IvarInvalidationChecker.cpp
@@ -722,7 +722,7 @@ void IvarInvalidationCheckerImpl::MethodCrawler::VisitObjCMessageExpr(
 
   VisitStmt(ME);
 }
-}
+} // namespace
 
 // Register the checkers.
 namespace {
@@ -738,7 +738,7 @@ public:
     Walker.visit(D);
   }
 };
-}
+} // namespace
 
 #define REGISTER_CHECKER(name)                                                 \
   void ento::register##name(CheckerManager &mgr) {                             \
diff --git a/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp b/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
index 0b7375a4b61..68ffb26f068 100644
--- a/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp
@@ -312,7 +312,7 @@ public:
     CheckStringRefAssignedTemporary(D, BR, this);
   }
 };
-}
+} // namespace
 
 void ento::registerLLVMConventionsChecker(CheckerManager &mgr) {
   mgr.registerChecker<LLVMConventionsChecker>();
diff --git a/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp b/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
index 52e29368cea..1ff43c5e251 100644
--- a/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
@@ -151,7 +151,7 @@ private:
                                    BugReport &BR) override;
   };
 };
-}
+} // namespace
 
 /// ProgramState traits to store the currently allocated (and not yet freed)
 /// symbols. This is a map from the allocated content symbol to the
diff --git a/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp b/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
index e91347999dc..817122e50ad 100644
--- a/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
@@ -187,7 +187,7 @@ private:
       toScanFor(v), Context(ctx)
     { }
   };
-}
+} // namespace
 
 // OutputPossibleOverflows - We've found a possible overflow earlier,
 // now check whether Body might contain a comparison which might be
diff --git a/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp b/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
index 296aec66805..cf255772d30 100644
--- a/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
@@ -246,7 +246,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 void ento::registerMallocSizeofChecker(CheckerManager &mgr) {
   mgr.registerChecker<MallocSizeofChecker>();
diff --git a/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp b/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
index 2be7f1d4ab8..9d0638dee5c 100644
--- a/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
@@ -47,7 +47,7 @@ public:
   void checkASTDecl(const ObjCMethodDecl *D,
                     AnalysisManager &mgr, BugReporter &BR) const;
 };
-}
+} // namespace
 
 void NSErrorMethodChecker::checkASTDecl(const ObjCMethodDecl *D,
                                         AnalysisManager &mgr,
@@ -94,7 +94,7 @@ public:
   void checkASTDecl(const FunctionDecl *D,
                     AnalysisManager &mgr, BugReporter &BR) const;
 };
-}
+} // namespace
 
 void CFErrorFunctionChecker::checkASTDecl(const FunctionDecl *D,
                                         AnalysisManager &mgr,
@@ -146,7 +146,7 @@ public:
                 "Coding conventions (Apple)") {}
 };
 
-}
+} // namespace
 
 namespace {
 class NSOrCFErrorDerefChecker
@@ -164,7 +164,7 @@ public:
                      CheckerContext &C) const;
   void checkEvent(ImplicitNullDerefEvent event) const;
 };
-}
+} // namespace
 
 typedef llvm::ImmutableMap<SymbolRef, unsigned> ErrorOutFlag;
 REGISTER_TRAIT_WITH_PROGRAMSTATE(NSErrorOut, ErrorOutFlag)
diff --git a/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp b/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
index ba82d1d1d41..6773b58161a 100644
--- a/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
@@ -36,7 +36,7 @@ public:
   void checkPostObjCMessage(const ObjCMethodCall &msg, CheckerContext &C) const;
 };
 
-}
+} // namespace
 
 void NoReturnFunctionChecker::checkPostCall(const CallEvent &CE,
                                             CheckerContext &C) const {
diff --git a/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp b/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
index e3fc611a7e0..159fb8f7b91 100644
--- a/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
@@ -168,7 +168,7 @@ public:
     walker.Visit(D->getBody());
   }
 };
-}
+} // namespace
 
 void ento::registerObjCContainersASTChecker(CheckerManager &mgr) {
   mgr.registerChecker<ObjCContainersASTChecker>();
diff --git a/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp b/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp
index a2cf8e10d09..a398832e7ff 100644
--- a/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/ObjCMissingSuperCallChecker.cpp
@@ -81,7 +81,7 @@ private:
   mutable bool IsInitialized;
 };
 
-}
+} // namespace
 
 /// \brief Determine whether the given class has a superclass that we want
 /// to check. The name of the found superclass is stored in SuperclassName.
diff --git a/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
index 49eef236e90..c794de8cfb5 100644
--- a/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
@@ -61,7 +61,7 @@ template <> struct FoldingSetTrait<RetEffect> {
     ID.AddInteger((unsigned) X.getObjKind());
 }
 };
-} // end llvm namespace
+} // namespace llvm
 
 //===----------------------------------------------------------------------===//
 // Reference-counting logic (typestate + counts).
@@ -484,7 +484,7 @@ public:
   IdentifierInfo *getIdentifier() const { return II; }
   Selector getSelector() const { return S; }
 };
-}
+} // namespace
 
 namespace llvm {
 template <> struct DenseMapInfo<ObjCSummaryKey> {
@@ -510,7 +510,7 @@ template <> struct DenseMapInfo<ObjCSummaryKey> {
   }
 
 };
-} // end llvm namespace
+} // namespace llvm
 
 namespace {
 class ObjCSummaryCache {
@@ -4032,4 +4032,6 @@ CallEffects CallEffects::getEffect(const FunctionDecl *FD) {
 
 #undef createCallEffect
 
-}}}
+} // namespace objc_retain
+} // namespace ento
+} // namespace clang
diff --git a/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp b/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp
index 6622313c991..fb135bd8002 100644
--- a/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp
@@ -34,7 +34,7 @@ class ReturnUndefChecker : public Checker< check::PreStmt<ReturnStmt> > {
 public:
   void checkPreStmt(const ReturnStmt *RS, CheckerContext &C) const;
 };
-}
+} // namespace
 
 void ReturnUndefChecker::checkPreStmt(const ReturnStmt *RS,
                                       CheckerContext &C) const {
diff --git a/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp b/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
index 327a9e0ac43..c21f71e6549 100644
--- a/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
@@ -40,7 +40,7 @@ private:
   static SourceRange genName(raw_ostream &os, const MemRegion *R,
                              ASTContext &Ctx);
 };
-}
+} // namespace
 
 SourceRange StackAddrEscapeChecker::genName(raw_ostream &os, const MemRegion *R,
                                             ASTContext &Ctx) {
diff --git a/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp b/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
index d33c977826a..22f4304b05b 100644
--- a/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
@@ -34,7 +34,7 @@ class TaintTesterChecker : public Checker< check::PostStmt<Expr> > {
 public:
   void checkPostStmt(const Expr *E, CheckerContext &C) const;
 };
-}
+} // namespace
 
 inline void TaintTesterChecker::initBugType() const {
   if (!BT)
diff --git a/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp b/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
index fc49a46eae5..9be10ba863e 100644
--- a/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp
@@ -56,7 +56,7 @@ public:
   void checkBranchCondition(const Stmt *Condition, CheckerContext &Ctx) const;
 };
 
-}
+} // namespace
 
 void UndefBranchChecker::checkBranchCondition(const Stmt *Condition,
                                               CheckerContext &Ctx) const {
diff --git a/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp b/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
index d78de3c6f3a..5f7f9ed020d 100644
--- a/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
@@ -48,7 +48,7 @@ private:
   static bool isInvalidPath(const CFGBlock *CB, const ParentMap &PM);
   static inline bool isEmptyCFGBlock(const CFGBlock *CB);
 };
-}
+} // namespace
 
 void UnreachableCodeChecker::checkEndAnalysis(ExplodedGraph &G,
                                               BugReporter &B,
diff --git a/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp b/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
index 7e1fc1eb54a..5bffc41174c 100644
--- a/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
+++ b/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
@@ -239,7 +239,7 @@ public:
       }
   }
 };
-}
+} // namespace
 
 void ento::registerVirtualCallChecker(CheckerManager &mgr) {
   mgr.registerChecker<VirtualCallChecker>();
diff --git a/lib/StaticAnalyzer/Core/BasicValueFactory.cpp b/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
index 0e90566839c..7e3c0909537 100644
--- a/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
+++ b/lib/StaticAnalyzer/Core/BasicValueFactory.cpp
@@ -50,7 +50,7 @@ template<> struct FoldingSetTrait<SValPair> {
     X.second.Profile(ID);
   }
 };
-}
+} // namespace llvm
 
 typedef llvm::FoldingSet<llvm::FoldingSetNodeWrapper<SValData> >
   PersistentSValsTy;
diff --git a/lib/StaticAnalyzer/Core/BlockCounter.cpp b/lib/StaticAnalyzer/Core/BlockCounter.cpp
index c1ac03d5ab9..64478875601 100644
--- a/lib/StaticAnalyzer/Core/BlockCounter.cpp
+++ b/lib/StaticAnalyzer/Core/BlockCounter.cpp
@@ -43,7 +43,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 typedef llvm::ImmutableMap<CountKey, unsigned> CountMap;
 
diff --git a/lib/StaticAnalyzer/Core/BugReporter.cpp b/lib/StaticAnalyzer/Core/BugReporter.cpp
index 97e97ef8c4d..fce72dd9e9c 100644
--- a/lib/StaticAnalyzer/Core/BugReporter.cpp
+++ b/lib/StaticAnalyzer/Core/BugReporter.cpp
@@ -2847,7 +2847,7 @@ public:
 
   bool popNextReportGraph(ReportGraph &GraphWrapper);
 };
-}
+} // namespace
 
 TrimmedGraph::TrimmedGraph(const ExplodedGraph *OriginalGraph,
                            ArrayRef<const ExplodedNode *> Nodes) {
diff --git a/lib/StaticAnalyzer/Core/CheckerManager.cpp b/lib/StaticAnalyzer/Core/CheckerManager.cpp
index 2684cc78be7..7a4d24608c8 100644
--- a/lib/StaticAnalyzer/Core/CheckerManager.cpp
+++ b/lib/StaticAnalyzer/Core/CheckerManager.cpp
@@ -160,7 +160,7 @@ namespace {
       checkFn(S, C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for visiting Stmts.
 void CheckerManager::runCheckersForStmt(bool isPreVisit,
@@ -199,7 +199,7 @@ namespace {
       checkFn(*Msg.cloneWithState<ObjCMethodCall>(Pred->getState()), C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for visiting obj-c messages.
 void CheckerManager::runCheckersForObjCMessage(bool isPreVisit,
@@ -242,7 +242,7 @@ namespace {
       checkFn(*Call.cloneWithState(Pred->getState()), C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for visiting an abstract call event.
 void CheckerManager::runCheckersForCallEvent(bool isPreVisit,
@@ -290,7 +290,7 @@ namespace {
       checkFn(Loc, IsLoad, BoundEx, C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for load/store of a location.
 
@@ -331,7 +331,7 @@ namespace {
       checkFn(Loc, Val, S, C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for binding of a value to a location.
 void CheckerManager::runCheckersForBind(ExplodedNodeSet &Dst,
@@ -395,7 +395,7 @@ namespace {
       checkFn(Condition, C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for branch condition.
 void CheckerManager::runCheckersForBranchCondition(const Stmt *Condition,
@@ -444,7 +444,7 @@ namespace {
       checkFn(SR, C);
     }
   };
-}
+} // namespace
 
 /// \brief Run checkers for dead symbols.
 void CheckerManager::runCheckersForDeadSymbols(ExplodedNodeSet &Dst,
diff --git a/lib/StaticAnalyzer/Core/ExprEngine.cpp b/lib/StaticAnalyzer/Core/ExprEngine.cpp
index ef515fb5937..4c255c1e262 100644
--- a/lib/StaticAnalyzer/Core/ExprEngine.cpp
+++ b/lib/StaticAnalyzer/Core/ExprEngine.cpp
@@ -2648,7 +2648,7 @@ struct DOTGraphTraits<ExplodedNode*> :
     return Out.str();
   }
 };
-} // end llvm namespace
+} // namespace llvm
 #endif
 
 void ExprEngine::ViewGraph(bool trim) {
diff --git a/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h b/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
index e7cc23ca823..c1baddd1302 100644
--- a/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
+++ b/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h
@@ -39,7 +39,7 @@ public:
   }
 };
 
-} // end ento namespace
-} // end clang namespace
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/lib/StaticAnalyzer/Core/ProgramState.cpp b/lib/StaticAnalyzer/Core/ProgramState.cpp
index 60b32c722eb..5f3e18feee6 100644
--- a/lib/StaticAnalyzer/Core/ProgramState.cpp
+++ b/lib/StaticAnalyzer/Core/ProgramState.cpp
@@ -40,7 +40,8 @@ void ProgramStateRelease(const ProgramState *state) {
     Mgr.freeStates.push_back(s);
   }
 }
-}}
+} // namespace ento
+} // namespace clang
 
 ProgramState::ProgramState(ProgramStateManager *mgr, const Environment& env,
                  StoreRef st, GenericDataMap gdm)
diff --git a/lib/StaticAnalyzer/Core/RegionStore.cpp b/lib/StaticAnalyzer/Core/RegionStore.cpp
index 6d41fc2146f..dd0f6125e52 100644
--- a/lib/StaticAnalyzer/Core/RegionStore.cpp
+++ b/lib/StaticAnalyzer/Core/RegionStore.cpp
@@ -131,7 +131,7 @@ namespace llvm {
   template <> struct isPodLike<BindingKey> {
     static const bool value = true;
   };
-} // end llvm namespace
+} // namespace llvm
 
 LLVM_DUMP_METHOD void BindingKey::dump() const { llvm::errs() << *this; }
 
@@ -309,7 +309,7 @@ public:
 
   bool supportsFields() const { return SupportsFields; }
 };
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // Main RegionStore logic.
@@ -737,7 +737,7 @@ public:
     static_cast<DERIVED*>(this)->VisitCluster(BaseR, C);
   }
 };
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // Binding invalidation.
@@ -963,7 +963,7 @@ public:
   void VisitCluster(const MemRegion *baseR, const ClusterBindings *C);
   void VisitBinding(SVal V);
 };
-}
+} // namespace
 
 void invalidateRegionsWorker::VisitBinding(SVal V) {
   // A symbol?  Mark it touched by the invalidation.
@@ -2196,7 +2196,7 @@ public:
   bool UpdatePostponed();
   void VisitBinding(SVal V);
 };
-}
+} // namespace
 
 void removeDeadBindingsWorker::VisitAddedToCluster(const MemRegion *baseR,
                                                    const ClusterBindings &C) {
diff --git a/lib/StaticAnalyzer/Core/SimpleConstraintManager.h b/lib/StaticAnalyzer/Core/SimpleConstraintManager.h
index 135cd4ef864..9911a8f2bca 100644
--- a/lib/StaticAnalyzer/Core/SimpleConstraintManager.h
+++ b/lib/StaticAnalyzer/Core/SimpleConstraintManager.h
@@ -93,8 +93,8 @@ protected:
                                          bool Assumption);
 };
 
-} // end GR namespace
+} // namespace ento
 
-} // end clang namespace
+} // namespace clang
 
 #endif
diff --git a/lib/StaticAnalyzer/Frontend/ModelInjector.h b/lib/StaticAnalyzer/Frontend/ModelInjector.h
index e23bf8abf38..196925030f9 100644
--- a/lib/StaticAnalyzer/Frontend/ModelInjector.h
+++ b/lib/StaticAnalyzer/Frontend/ModelInjector.h
@@ -68,7 +68,7 @@ private:
   // BodyFarm.
   llvm::StringMap<Stmt *> Bodies;
 };
-}
-}
+} // namespace ento
+} // namespace clang
 
 #endif
diff --git a/lib/Tooling/Tooling.cpp b/lib/Tooling/Tooling.cpp
index f9cb7c64134..5e373d664e1 100644
--- a/lib/Tooling/Tooling.cpp
+++ b/lib/Tooling/Tooling.cpp
@@ -173,7 +173,7 @@ public:
   FrontendAction *create() override { return Action; }
 };
 
-}
+} // namespace
 
 ToolInvocation::ToolInvocation(
     std::vector<std::string> CommandLine, ToolAction *Action,
@@ -406,7 +406,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 int ClangTool::buildASTs(std::vector<std::unique_ptr<ASTUnit>> &ASTs) {
   ASTBuilderAction Action(ASTs);
diff --git a/tools/diagtool/DiagTool.h b/tools/diagtool/DiagTool.h
index 04b926df3b6..c1ae0e54279 100644
--- a/tools/diagtool/DiagTool.h
+++ b/tools/diagtool/DiagTool.h
@@ -54,7 +54,7 @@ public:
   RegisterDiagTool() { diagTools->registerTool(new DIAGTOOL()); }
 };
 
-} // end diagtool namespace
+} // namespace diagtool
 
 #define DEF_DIAGTOOL(NAME, DESC, CLSNAME)\
 namespace {\
diff --git a/tools/diagtool/ListWarnings.cpp b/tools/diagtool/ListWarnings.cpp
index 3e6e88306e2..10c86b4d96b 100644
--- a/tools/diagtool/ListWarnings.cpp
+++ b/tools/diagtool/ListWarnings.cpp
@@ -37,7 +37,7 @@ struct Entry {
   
   bool operator<(const Entry &x) const { return DiagName < x.DiagName; }
 };
-}
+} // namespace
 
 static void printEntries(std::vector<Entry> &entries, llvm::raw_ostream &out) {
   for (std::vector<Entry>::iterator it = entries.begin(), ei = entries.end();
diff --git a/tools/diagtool/ShowEnabledWarnings.cpp b/tools/diagtool/ShowEnabledWarnings.cpp
index 06f74320b7f..67094a5836e 100644
--- a/tools/diagtool/ShowEnabledWarnings.cpp
+++ b/tools/diagtool/ShowEnabledWarnings.cpp
@@ -34,7 +34,7 @@ namespace {
 
     bool operator<(const PrettyDiag &x) const { return Name < x.Name; }
   };
-}
+} // namespace
 
 static void printUsage() {
   llvm::errs() << "Usage: diagtool show-enabled [<flags>] <single-input.c>\n";
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp
index 3b55441e188..73883c4f60a 100644
--- a/tools/driver/cc1as_main.cpp
+++ b/tools/driver/cc1as_main.cpp
@@ -149,7 +149,7 @@ public:
                              DiagnosticsEngine &Diags);
 };
 
-}
+} // namespace
 
 bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
                                          ArrayRef<const char *> Argv,
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 2216ec61afa..857e276f8ca 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -1897,7 +1897,7 @@ private:
   void EnqueueChildren(const Stmt *S);
   void EnqueueChildren(const OMPClause *S);
 };
-} // end anonyous namespace
+} // namespace
 
 void EnqueueVisitor::AddDeclarationNameInfo(const Stmt *S) {
   // 'S' should always be non-null, since it comes from the
@@ -2098,7 +2098,7 @@ OMPClauseEnqueue::VisitOMPCopyprivateClause(const OMPCopyprivateClause *C) {
 void OMPClauseEnqueue::VisitOMPFlushClause(const OMPFlushClause *C) {
   VisitOMPClauseList(C);
 }
-}
+} // namespace
 
 void EnqueueVisitor::EnqueueChildren(const OMPClause *S) {
   unsigned size = WL.size();
@@ -2783,7 +2783,7 @@ buildPieces(unsigned NameFlags, bool IsMemberRefExpr,
 
   return Pieces;  
 }
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // Misc. API hooks.
@@ -5616,7 +5616,7 @@ public:
     assert(PostChildrenInfos.empty());
   }
 };
-}
+} // namespace
 
 void AnnotateTokensWorker::AnnotateTokens() {
   // Walk the AST within the region of interest, annotating tokens
@@ -7116,7 +7116,7 @@ void SetSafetyThreadStackSize(unsigned Value) {
   SafetyStackThreadSize = Value;
 }
 
-}
+} // namespace clang
 
 void clang::setThreadBackgroundPriority() {
   if (getenv("LIBCLANG_BGPRIO_DISABLE"))
diff --git a/tools/libclang/CIndexCodeCompletion.cpp b/tools/libclang/CIndexCodeCompletion.cpp
index a7b8e292047..6637abbf866 100644
--- a/tools/libclang/CIndexCodeCompletion.cpp
+++ b/tools/libclang/CIndexCodeCompletion.cpp
@@ -644,7 +644,7 @@ namespace {
       StoredResults.clear();
     }
   };
-}
+} // namespace
 
 extern "C" {
 struct CodeCompleteAtInfo {
@@ -996,7 +996,7 @@ namespace {
       return result < 0;
     }
   };
-}
+} // namespace
 
 extern "C" {
   void clang_sortCodeCompletionResults(CXCompletionResult *Results,
diff --git a/tools/libclang/CIndexDiagnostic.cpp b/tools/libclang/CIndexDiagnostic.cpp
index 9ba36a6a0f8..24d8af8060c 100644
--- a/tools/libclang/CIndexDiagnostic.cpp
+++ b/tools/libclang/CIndexDiagnostic.cpp
@@ -155,7 +155,7 @@ public:
   CXDiagnosticSetImpl *CurrentSet;
   CXDiagnosticSetImpl *MainSet;
 };  
-}
+} // namespace
 
 CXDiagnosticSetImpl *cxdiag::lazyCreateDiags(CXTranslationUnit TU,
                                              bool checkIfChanged) {
diff --git a/tools/libclang/CIndexer.h b/tools/libclang/CIndexer.h
index 8a306cde67c..3e16f32db7f 100644
--- a/tools/libclang/CIndexer.h
+++ b/tools/libclang/CIndexer.h
@@ -120,7 +120,7 @@ public:
     MacroDefinitionRecord *checkForMacroInMacroDefinition(const MacroInfo *MI,
                                                           const Token &Tok,
                                                           CXTranslationUnit TU);
-    }
-    }
+    } // namespace cxindex
+    } // namespace clang
 
 #endif
diff --git a/tools/libclang/CLog.h b/tools/libclang/CLog.h
index b9309ed1923..6a6e90abea9 100644
--- a/tools/libclang/CLog.h
+++ b/tools/libclang/CLog.h
@@ -87,8 +87,8 @@ public:
   Logger &operator<<(const llvm::format_object_base &Fmt);
 };
 
-}
-}
+} // namespace cxindex
+} // namespace clang
 
 /// \brief Macros to automate common uses of Logger. Like this:
 /// \code
diff --git a/tools/libclang/CXCursor.cpp b/tools/libclang/CXCursor.cpp
index b8bb28ed853..2950451ac3b 100644
--- a/tools/libclang/CXCursor.cpp
+++ b/tools/libclang/CXCursor.cpp
@@ -1249,7 +1249,7 @@ public:
            x.data[1] == y.data[1];
   }
 };
-}
+} // namespace llvm
 
 extern "C" {
 CXCursorSet clang_createCXCursorSet() {
@@ -1325,7 +1325,7 @@ namespace {
       }
     }
   };
-}
+} // namespace
 
 void *cxcursor::createOverridenCXCursorsPool() {
   return new OverridenCursorsPool();
diff --git a/tools/libclang/CXCursor.h b/tools/libclang/CXCursor.h
index 083b86934d1..ec88d53bb7d 100644
--- a/tools/libclang/CXCursor.h
+++ b/tools/libclang/CXCursor.h
@@ -294,6 +294,7 @@ inline bool operator!=(CXCursor X, CXCursor Y) {
 /// first in a declaration group.
 bool isFirstInDeclGroup(CXCursor C);
 
-}} // end namespace: clang::cxcursor
+} // namespace cxcursor
+} // namespace clang
 
 #endif
diff --git a/tools/libclang/CXLoadedDiagnostic.cpp b/tools/libclang/CXLoadedDiagnostic.cpp
index 754ad55a660..746e4579daa 100644
--- a/tools/libclang/CXLoadedDiagnostic.cpp
+++ b/tools/libclang/CXLoadedDiagnostic.cpp
@@ -56,7 +56,7 @@ public:
     return mem;
   }
 };
-}
+} // namespace
 
 //===----------------------------------------------------------------------===//
 // Cleanup.
@@ -246,7 +246,7 @@ public:
 
   CXDiagnosticSet load(const char *file);
 };
-}
+} // namespace
 
 CXDiagnosticSet DiagLoader::load(const char *file) {
   TopDiags = llvm::make_unique<CXLoadedDiagnosticSetImpl>();
diff --git a/tools/libclang/CXLoadedDiagnostic.h b/tools/libclang/CXLoadedDiagnostic.h
index d5006a4444a..b68392783fe 100644
--- a/tools/libclang/CXLoadedDiagnostic.h
+++ b/tools/libclang/CXLoadedDiagnostic.h
@@ -89,6 +89,6 @@ public:
   unsigned severity;
   unsigned category;
 };
-}
+} // namespace clang
 
 #endif
diff --git a/tools/libclang/CXSourceLocation.h b/tools/libclang/CXSourceLocation.h
index f0b3f495491..3cb78d23a1f 100644
--- a/tools/libclang/CXSourceLocation.h
+++ b/tools/libclang/CXSourceLocation.h
@@ -73,6 +73,7 @@ static inline SourceRange translateCXSourceRange(CXSourceRange R) {
 }
 
 
-}} // end namespace: clang::cxloc
+} // namespace cxloc
+} // namespace clang
 
 #endif
diff --git a/tools/libclang/CXString.h b/tools/libclang/CXString.h
index 72ac0cf4691..3d54690ddef 100644
--- a/tools/libclang/CXString.h
+++ b/tools/libclang/CXString.h
@@ -96,12 +96,12 @@ CXStringBuf *getCXStringBuf(CXTranslationUnit TU);
 /// \brief Returns true if the CXString data is managed by a pool.
 bool isManagedByPool(CXString str);
 
-}
+} // namespace cxstring
 
 static inline StringRef getContents(const CXUnsavedFile &UF) {
   return StringRef(UF.Contents, UF.Length);
 }
-}
+} // namespace clang
 
 #endif
 
diff --git a/tools/libclang/CXTranslationUnit.h b/tools/libclang/CXTranslationUnit.h
index 6022c9dab1b..9054c509103 100644
--- a/tools/libclang/CXTranslationUnit.h
+++ b/tools/libclang/CXTranslationUnit.h
@@ -78,6 +78,7 @@ public:
 };
 
 
-}} // end namespace clang::cxtu
+} // namespace cxtu
+} // namespace clang
 
 #endif
diff --git a/tools/libclang/CursorVisitor.h b/tools/libclang/CursorVisitor.h
index 1b2a922204f..a00fc985733 100644
--- a/tools/libclang/CursorVisitor.h
+++ b/tools/libclang/CursorVisitor.h
@@ -263,8 +263,8 @@ public:
   LLVM_ATTRIBUTE_NOINLINE bool Visit(const Stmt *S);
 };
 
-}
-}
+} // namespace cxcursor
+} // namespace clang
 
 #endif
 
diff --git a/tools/libclang/Indexing.cpp b/tools/libclang/Indexing.cpp
index e35640029e6..c1e3378438a 100644
--- a/tools/libclang/Indexing.cpp
+++ b/tools/libclang/Indexing.cpp
@@ -141,7 +141,7 @@ namespace llvm {
       return LHS == RHS;
     }
   };
-}
+} // namespace llvm
 
 namespace {
 
diff --git a/tools/libclang/IndexingContext.h b/tools/libclang/IndexingContext.h
index 4da6aebaf64..5f29e0b4cb8 100644
--- a/tools/libclang/IndexingContext.h
+++ b/tools/libclang/IndexingContext.h
@@ -519,6 +519,7 @@ inline T *ScratchAlloc::allocate() {
   return IdxCtx.StrScratch.Allocate<T>();
 }
 
-}} // end clang::cxindex
+} // namespace cxindex
+} // namespace clang
 
 #endif
diff --git a/unittests/AST/EvaluateAsRValueTest.cpp b/unittests/AST/EvaluateAsRValueTest.cpp
index 820edbc7c3e..f1d3eb5296f 100644
--- a/unittests/AST/EvaluateAsRValueTest.cpp
+++ b/unittests/AST/EvaluateAsRValueTest.cpp
@@ -79,7 +79,7 @@ class EvaluateConstantInitializersAction : public clang::ASTFrontendAction {
     }
   };
 };
-}
+} // namespace
 
 TEST(EvaluateAsRValue, FailsGracefullyForUnknownTypes) {
   // This is a regression test; the AST library used to trigger assertion
diff --git a/unittests/Basic/DiagnosticTest.cpp b/unittests/Basic/DiagnosticTest.cpp
index fa2b56e0834..100fda4af5a 100644
--- a/unittests/Basic/DiagnosticTest.cpp
+++ b/unittests/Basic/DiagnosticTest.cpp
@@ -46,4 +46,4 @@ TEST(DiagnosticTest, suppressAndTrap) {
   EXPECT_FALSE(Diags.hasUnrecoverableErrorOccurred());
 }
 
-}
+} // namespace
diff --git a/unittests/Basic/SourceManagerTest.cpp b/unittests/Basic/SourceManagerTest.cpp
index 494c27a2f1c..f087b69118d 100644
--- a/unittests/Basic/SourceManagerTest.cpp
+++ b/unittests/Basic/SourceManagerTest.cpp
@@ -271,7 +271,7 @@ public:
   }
 };
 
-}
+} // namespace
 
 TEST_F(SourceManagerTest, isBeforeInTranslationUnitWithMacroInInclude) {
   const char *header =
diff --git a/unittests/Basic/VirtualFileSystemTest.cpp b/unittests/Basic/VirtualFileSystemTest.cpp
index 71d2d2b60c0..fc3004ee799 100644
--- a/unittests/Basic/VirtualFileSystemTest.cpp
+++ b/unittests/Basic/VirtualFileSystemTest.cpp
@@ -279,7 +279,7 @@ struct ScopedDir {
   }
   operator StringRef() { return Path.str(); }
 };
-}
+} // namespace
 
 TEST(VirtualFileSystemTest, BasicRealFSIteration) {
   ScopedDir TestDirectory("virtual-file-system-test", /*Unique*/true);
diff --git a/unittests/CodeGen/BufferSourceTest.cpp b/unittests/CodeGen/BufferSourceTest.cpp
index b2a8ba58084..00f06775314 100644
--- a/unittests/CodeGen/BufferSourceTest.cpp
+++ b/unittests/CodeGen/BufferSourceTest.cpp
@@ -74,4 +74,4 @@ TEST(BufferSourceTest, EmitCXXGlobalInitFunc) {
     clang::ParseAST(compiler.getSema(), false, false);
 }
 
-}
+} // namespace
diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp
index 15d62eb66c3..715d0cb17e3 100644
--- a/unittests/Format/FormatTestJS.cpp
+++ b/unittests/Format/FormatTestJS.cpp
@@ -893,5 +893,5 @@ TEST_F(FormatTestJS, IndexSignature) {
   verifyFormat("var x: {[k: string]: v};");
 }
 
-} // end namespace tooling
+} // namespace format
 } // end namespace clang
diff --git a/unittests/Format/FormatTestJava.cpp b/unittests/Format/FormatTestJava.cpp
index 4c161e0180a..35b3b6ce2e9 100644
--- a/unittests/Format/FormatTestJava.cpp
+++ b/unittests/Format/FormatTestJava.cpp
@@ -501,5 +501,5 @@ TEST_F(FormatTestJava, AlignsBlockComments) {
                    "  void f() {}"));
 }
 
-} // end namespace tooling
+} // namespace format
 } // end namespace clang
diff --git a/unittests/Format/FormatTestProto.cpp b/unittests/Format/FormatTestProto.cpp
index ac8fcbdda4f..e90c29f24cb 100644
--- a/unittests/Format/FormatTestProto.cpp
+++ b/unittests/Format/FormatTestProto.cpp
@@ -152,5 +152,5 @@ TEST_F(FormatTestProto, FormatsService) {
                "};");
 }
 
-} // end namespace tooling
+} // namespace format
 } // end namespace clang
diff --git a/unittests/Lex/PPCallbacksTest.cpp b/unittests/Lex/PPCallbacksTest.cpp
index 94812fc93de..6ae71ebcfcf 100644
--- a/unittests/Lex/PPCallbacksTest.cpp
+++ b/unittests/Lex/PPCallbacksTest.cpp
@@ -346,4 +346,4 @@ TEST_F(PPCallbacksTest, OpenCLExtensionPragmaDisabled) {
   ASSERT_EQ(ExpectedState, Parameters.State);
 }
 
-} // anonoymous namespace
+} // namespace
diff --git a/unittests/Tooling/RefactoringCallbacksTest.cpp b/unittests/Tooling/RefactoringCallbacksTest.cpp
index c2b331c70af..ea4d8da92a2 100644
--- a/unittests/Tooling/RefactoringCallbacksTest.cpp
+++ b/unittests/Tooling/RefactoringCallbacksTest.cpp
@@ -96,5 +96,5 @@ TEST(RefactoringCallbacksTest, RemovesEntireIfOnEmptyElse) {
       Callback);
 }
 
-} // end namespace ast_matchers
+} // namespace tooling
 } // end namespace clang
diff --git a/unittests/Tooling/TestVisitor.h b/unittests/Tooling/TestVisitor.h
index f4a00394487..77a42af55ab 100644
--- a/unittests/Tooling/TestVisitor.h
+++ b/unittests/Tooling/TestVisitor.h
@@ -229,6 +229,6 @@ protected:
   std::vector<MatchCandidate> DisallowedMatches;
   std::vector<ExpectedMatch> ExpectedMatches;
 };
-}
+} // namespace clang
 
 #endif
diff --git a/unittests/libclang/LibclangTest.cpp b/unittests/libclang/LibclangTest.cpp
index e827ebc0da8..650d28b622f 100644
--- a/unittests/libclang/LibclangTest.cpp
+++ b/unittests/libclang/LibclangTest.cpp
@@ -68,7 +68,7 @@ struct TestVFO {
     clang_VirtualFileOverlay_dispose(VFO);
   }
 };
-}
+} // namespace
 
 TEST(libclang, VirtualFileOverlay_Basic) {
   const char *contents =
diff --git a/utils/TableGen/ClangAttrEmitter.cpp b/utils/TableGen/ClangAttrEmitter.cpp
index f79c4a5f921..29727104e15 100644
--- a/utils/TableGen/ClangAttrEmitter.cpp
+++ b/utils/TableGen/ClangAttrEmitter.cpp
@@ -1016,7 +1016,7 @@ namespace {
           getType(), "SA->get" + std::string(getUpperName()) + "Loc()");
     }
   };
-}
+} // namespace
 
 static std::unique_ptr<Argument>
 createArgument(const Record &Arg, StringRef Attr,
diff --git a/utils/TableGen/NeonEmitter.cpp b/utils/TableGen/NeonEmitter.cpp
index 7644ae2c04d..4f39459929e 100644
--- a/utils/TableGen/NeonEmitter.cpp
+++ b/utils/TableGen/NeonEmitter.cpp
@@ -89,7 +89,7 @@ enum EltType {
   Float32,
   Float64
 };
-}
+} // namespace NeonTypeFlags
 
 class Intrinsic;
 class NeonEmitter;
diff --git a/utils/TableGen/TableGen.cpp b/utils/TableGen/TableGen.cpp
index 4484e65097c..d232823a563 100644
--- a/utils/TableGen/TableGen.cpp
+++ b/utils/TableGen/TableGen.cpp
@@ -237,7 +237,7 @@ bool ClangTableGenMain(raw_ostream &OS, RecordKeeper &Records) {
 
   return false;
 }
-}
+} // namespace
 
 int main(int argc, char **argv) {
   sys::PrintStackTraceOnErrorSignal();
-- 
GitLab