Index: clang-tools-extra/trunk/clang-move/ClangMove.h
===================================================================
--- clang-tools-extra/trunk/clang-move/ClangMove.h
+++ clang-tools-extra/trunk/clang-move/ClangMove.h
@@ -217,8 +217,8 @@
                          DeclarationReporter *const Reporter = nullptr)
       : Context(Context), Reporter(Reporter) {}
 
-  clang::FrontendAction *create() override {
-    return new ClangMoveAction(Context, Reporter);
+  std::unique_ptr<clang::FrontendAction> create() override {
+    return llvm::make_unique<ClangMoveAction>(Context, Reporter);
   }
 
 private:
Index: clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
+++ clang-tools-extra/trunk/clang-tidy/ClangTidy.cpp
@@ -527,7 +527,9 @@
   class ActionFactory : public FrontendActionFactory {
   public:
     ActionFactory(ClangTidyContext &Context) : ConsumerFactory(Context) {}
-    FrontendAction *create() override { return new Action(&ConsumerFactory); }
+    std::unique_ptr<clang::FrontendAction> create() override {
+      return llvm::make_unique<Action>(&ConsumerFactory);
+    }
 
   private:
     class Action : public ASTFrontendAction {
Index: clang-tools-extra/trunk/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp
===================================================================
--- clang-tools-extra/trunk/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp
+++ clang-tools-extra/trunk/clangd/global-symbol-builder/GlobalSymbolBuilderMain.cpp
@@ -53,7 +53,7 @@
 public:
   SymbolIndexActionFactory(tooling::ExecutionContext *Ctx) : Ctx(Ctx) {}
 
-  clang::FrontendAction *create() override {
+  std::unique_ptr<clang::FrontendAction> create() override {
     // Wraps the index action and reports collected symbols to the execution
     // context at the end of each translation unit.
     class WrappedIndexAction : public WrapperFrontendAction {
@@ -102,7 +102,8 @@
     auto Includes = llvm::make_unique<CanonicalIncludes>();
     addSystemHeadersMapping(Includes.get());
     CollectorOpts.Includes = Includes.get();
-    return new WrappedIndexAction(
+
+    return llvm::make_unique<WrappedIndexAction>(
         std::make_shared<SymbolCollector>(std::move(CollectorOpts)),
         std::move(Includes), IndexOpts, Ctx);
   }
Index: clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbolsAction.h
===================================================================
--- clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbolsAction.h
+++ clang-tools-extra/trunk/include-fixer/find-all-symbols/FindAllSymbolsAction.h
@@ -48,8 +48,8 @@
       const HeaderMapCollector::RegexHeaderMap *RegexHeaderMap = nullptr)
       : Reporter(Reporter), RegexHeaderMap(RegexHeaderMap) {}
 
-  clang::FrontendAction *create() override {
-    return new FindAllSymbolsAction(Reporter, RegexHeaderMap);
+  std::unique_ptr<clang::FrontendAction> create() override {
+    return llvm::make_unique<FindAllSymbolsAction>(Reporter, RegexHeaderMap);
   }
 
 private:
Index: clang-tools-extra/trunk/modularize/CoverageChecker.cpp
===================================================================
--- clang-tools-extra/trunk/modularize/CoverageChecker.cpp
+++ clang-tools-extra/trunk/modularize/CoverageChecker.cpp
@@ -129,8 +129,8 @@
   CoverageCheckerFrontendActionFactory(CoverageChecker &Checker)
     : Checker(Checker) {}
 
-  CoverageCheckerAction *create() override {
-    return new CoverageCheckerAction(Checker);
+  std::unique_ptr<clang::FrontendAction> create() override {
+    return llvm::make_unique<CoverageCheckerAction>(Checker);
   }
 
 private:
Index: clang-tools-extra/trunk/modularize/Modularize.cpp
===================================================================
--- clang-tools-extra/trunk/modularize/Modularize.cpp
+++ clang-tools-extra/trunk/modularize/Modularize.cpp
@@ -722,8 +722,9 @@
       : Entities(Entities), PPTracker(preprocessorTracker),
         HadErrors(HadErrors) {}
 
-  CollectEntitiesAction *create() override {
-    return new CollectEntitiesAction(Entities, PPTracker, HadErrors);
+  std::unique_ptr<clang::FrontendAction> create() override {
+    return llvm::make_unique<CollectEntitiesAction>(Entities, PPTracker,
+                                                    HadErrors);
   }
 
 private:
@@ -802,8 +803,8 @@
 public:
   CompileCheckFrontendActionFactory() {}
 
-  CompileCheckAction *create() override {
-    return new CompileCheckAction();
+  std::unique_ptr<clang::FrontendAction> create() override {
+    return llvm::make_unique<CompileCheckAction>();
   }
 };
 
Index: clang-tools-extra/trunk/pp-trace/PPTrace.cpp
===================================================================
--- clang-tools-extra/trunk/pp-trace/PPTrace.cpp
+++ clang-tools-extra/trunk/pp-trace/PPTrace.cpp
@@ -139,8 +139,8 @@
                                std::vector<CallbackCall> &CallbackCalls)
       : Ignore(Ignore), CallbackCalls(CallbackCalls) {}
 
-  PPTraceAction *create() override {
-    return new PPTraceAction(Ignore, CallbackCalls);
+  std::unique_ptr<clang::FrontendAction> create() override {
+    return llvm::make_unique<PPTraceAction>(Ignore, CallbackCalls);
   }
 
 private:
Index: clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h
===================================================================
--- clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h
+++ clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyTest.h
@@ -107,7 +107,8 @@
   SmallVector<std::unique_ptr<ClangTidyCheck>, 1> Checks;
   CheckFactory<CheckList...>::createChecks(&Context, Checks);
   tooling::ToolInvocation Invocation(
-      Args, new TestClangTidyAction(Checks, Finder, Context), Files.get());
+      Args, llvm::make_unique<TestClangTidyAction>(Checks, Finder, Context),
+      Files.get());
   InMemoryFileSystem->addFile(Filename, 0,
                               llvm::MemoryBuffer::getMemBuffer(Code));
   for (const auto &FileContent : PathsToContent) {
Index: clang-tools-extra/trunk/unittests/clangd/SymbolCollectorTests.cpp
===================================================================
--- clang-tools-extra/trunk/unittests/clangd/SymbolCollectorTests.cpp
+++ clang-tools-extra/trunk/unittests/clangd/SymbolCollectorTests.cpp
@@ -69,7 +69,7 @@
                            CommentHandler *PragmaHandler)
       : COpts(std::move(COpts)), PragmaHandler(PragmaHandler) {}
 
-  clang::FrontendAction *create() override {
+  std::unique_ptr<clang::FrontendAction> create() override {
     class WrappedIndexAction : public WrapperFrontendAction {
     public:
       WrappedIndexAction(std::shared_ptr<SymbolCollector> C,
@@ -95,8 +95,9 @@
         index::IndexingOptions::SystemSymbolFilterKind::All;
     IndexOpts.IndexFunctionLocals = false;
     Collector = std::make_shared<SymbolCollector>(COpts);
-    return new WrappedIndexAction(Collector, std::move(IndexOpts),
-                                  PragmaHandler);
+
+    return llvm::make_unique<WrappedIndexAction>(
+        Collector, std::move(IndexOpts), PragmaHandler);
   }
 
   std::shared_ptr<SymbolCollector> Collector;