[clang-tools-extra] [NFC] Complete proper copying and resource cleanup in classes. (PR #118655)

via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 4 11:03:50 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tools-extra

@llvm/pr-subscribers-clangd

Author: Zahira Ammarguellat (zahiraam)

<details>
<summary>Changes</summary>

Provide, where missing, a copy constructor, a copy assignment operator or a destructor to prevent potential issues that can arise. 

---
Full diff: https://github.com/llvm/llvm-project/pull/118655.diff


8 Files Affected:

- (modified) clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h (+3) 
- (modified) clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h (+2) 
- (modified) clang-tools-extra/clangd/ClangdLSPServer.h (+3) 
- (modified) clang-tools-extra/clangd/ParsedAST.h (+3) 
- (modified) clang-tools-extra/clangd/TUScheduler.cpp (+5-1) 
- (modified) clang-tools-extra/clangd/TUScheduler.h (+3) 
- (modified) clang-tools-extra/clangd/support/DirectiveTree.cpp (+3) 
- (modified) clang-tools-extra/modularize/ModuleAssistant.cpp (+2) 


``````````diff
diff --git a/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h b/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
index 97e16a12febd04..d9efe42735f2fc 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
+++ b/clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
@@ -81,6 +81,9 @@ class ClangTidyContext {
 
   ~ClangTidyContext();
 
+  ClangTidyContext(const ClangTidyContext &) = default;
+  ClangTidyContext &operator=(const ClangTidyContext &) = default;
+
   /// Report any errors detected using this method.
   ///
   /// This is still under heavy development and will likely change towards using
diff --git a/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h b/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h
index e862195abaabbe..1e7485224de116 100644
--- a/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h
+++ b/clang-tools-extra/clang-tidy/NoLintDirectiveHandler.h
@@ -31,6 +31,8 @@ class NoLintDirectiveHandler {
 public:
   NoLintDirectiveHandler();
   ~NoLintDirectiveHandler();
+  NoLintDirectiveHandler(const NoLintDirectiveHandler &) = default;
+  NoLintDirectiveHandler &operator=(const NoLintDirectiveHandler &) = default;
 
   bool shouldSuppress(DiagnosticsEngine::Level DiagLevel,
                       const Diagnostic &Diag, llvm::StringRef DiagName,
diff --git a/clang-tools-extra/clangd/ClangdLSPServer.h b/clang-tools-extra/clangd/ClangdLSPServer.h
index 0b8e4720f53236..607478aa821c87 100644
--- a/clang-tools-extra/clangd/ClangdLSPServer.h
+++ b/clang-tools-extra/clangd/ClangdLSPServer.h
@@ -73,6 +73,9 @@ class ClangdLSPServer : private ClangdServer::Callbacks,
   /// The destructor blocks on any outstanding background tasks.
   ~ClangdLSPServer();
 
+  ClangdLSPServer(const ClangdLSPServer &other) = default;
+  ClangdLSPServer &operator=(const ClangdLSPServer &other) = default;
+
   /// Run LSP server loop, communicating with the Transport provided in the
   /// constructor. This method must not be executed more than once.
   ///
diff --git a/clang-tools-extra/clangd/ParsedAST.h b/clang-tools-extra/clangd/ParsedAST.h
index 63e564bd68a78c..b28cf927e4c0c6 100644
--- a/clang-tools-extra/clangd/ParsedAST.h
+++ b/clang-tools-extra/clangd/ParsedAST.h
@@ -59,6 +59,9 @@ class ParsedAST {
 
   ~ParsedAST();
 
+  ParsedAST(const ParsedAST &Other) = default;
+  ParsedAST &operator=(const ParsedAST &Other) = default;
+
   /// Note that the returned ast will not contain decls from the preamble that
   /// were not deserialized during parsing. Clients should expect only decls
   /// from the main file to be in the AST.
diff --git a/clang-tools-extra/clangd/TUScheduler.cpp b/clang-tools-extra/clangd/TUScheduler.cpp
index 71548b59cc3088..651e03eced7fb9 100644
--- a/clang-tools-extra/clangd/TUScheduler.cpp
+++ b/clang-tools-extra/clangd/TUScheduler.cpp
@@ -411,6 +411,9 @@ class PreambleThrottlerRequest {
     if (Throttler)
       Throttler->release(ID);
   }
+  PreambleThrottlerRequest(const PreambleThrottlerRequest &) = default;
+  PreambleThrottlerRequest &
+  operator=(const PreambleThrottlerRequest &) = default;
 
 private:
   PreambleThrottler::RequestID ID;
@@ -621,7 +624,8 @@ class ASTWorker {
          AsyncTaskRunner *Tasks, Semaphore &Barrier,
          const TUScheduler::Options &Opts, ParsingCallbacks &Callbacks);
   ~ASTWorker();
-
+  ASTWorker(const ASTWorker &other) = default;
+  ASTWorker &operator=(const ASTWorker &other) = default;
   void update(ParseInputs Inputs, WantDiagnostics, bool ContentChanged);
   void
   runWithAST(llvm::StringRef Name,
diff --git a/clang-tools-extra/clangd/TUScheduler.h b/clang-tools-extra/clangd/TUScheduler.h
index fb936d46bbcf7e..70848d2e053413 100644
--- a/clang-tools-extra/clangd/TUScheduler.h
+++ b/clang-tools-extra/clangd/TUScheduler.h
@@ -242,6 +242,9 @@ class TUScheduler {
               std::unique_ptr<ParsingCallbacks> ASTCallbacks = nullptr);
   ~TUScheduler();
 
+  TUScheduler(const TUScheduler &other) = default;
+  TUScheduler &operator=(const TUScheduler &other) = default;
+
   struct FileStats {
     std::size_t UsedBytesAST = 0;
     std::size_t UsedBytesPreamble = 0;
diff --git a/clang-tools-extra/clangd/support/DirectiveTree.cpp b/clang-tools-extra/clangd/support/DirectiveTree.cpp
index d25da111681afc..268dde45196493 100644
--- a/clang-tools-extra/clangd/support/DirectiveTree.cpp
+++ b/clang-tools-extra/clangd/support/DirectiveTree.cpp
@@ -328,6 +328,9 @@ class Preprocessor {
   Preprocessor(const TokenStream &In, TokenStream &Out) : In(In), Out(Out) {}
   ~Preprocessor() { Out.finalize(); }
 
+  Preprocessor(const Preprocessor &other) = default;
+  Preprocessor &operator=(const Preprocessor &other) = default;
+
   void walk(const DirectiveTree &T) {
     for (const auto &C : T.Chunks)
       std::visit(*this, C);
diff --git a/clang-tools-extra/modularize/ModuleAssistant.cpp b/clang-tools-extra/modularize/ModuleAssistant.cpp
index 5c11ffdb8589d5..b6bb1d5146e560 100644
--- a/clang-tools-extra/modularize/ModuleAssistant.cpp
+++ b/clang-tools-extra/modularize/ModuleAssistant.cpp
@@ -46,6 +46,8 @@ class Module {
 public:
   Module(llvm::StringRef Name, bool Problem);
   ~Module();
+  Module(const Module &other) = default;
+  Module &operator=(const Module &other) = default;
   bool output(llvm::raw_fd_ostream &OS, int Indent);
   Module *findSubModule(llvm::StringRef SubName);
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/118655


More information about the cfe-commits mailing list