Author: Manna, Soumi Date: 2023-05-14T19:49:28-07:00 New Revision: 5ebff1ac1b986c6b5317aaf5ab6c4830a711067a
URL: https://github.com/llvm/llvm-project/commit/5ebff1ac1b986c6b5317aaf5ab6c4830a711067a DIFF: https://github.com/llvm/llvm-project/commit/5ebff1ac1b986c6b5317aaf5ab6c4830a711067a.diff LOG: [NFC][Clang] Fix Coverity issues of copy without assign This patch adds missing copy/move assignment operator to the class which has user-defined copy/move constructor. Reviewed By: tahonermann Differential Revision: https://reviews.llvm.org/D149718 Added: Modified: clang/include/clang/Analysis/BodyFarm.h clang/include/clang/Sema/ParsedAttr.h clang/lib/Analysis/UnsafeBufferUsage.cpp clang/lib/Serialization/ASTWriterStmt.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Analysis/BodyFarm.h b/clang/include/clang/Analysis/BodyFarm.h index eaa6472433dde..52be29cb7885e 100644 --- a/clang/include/clang/Analysis/BodyFarm.h +++ b/clang/include/clang/Analysis/BodyFarm.h @@ -40,6 +40,9 @@ class BodyFarm { /// Remove copy constructor to avoid accidental copying. BodyFarm(const BodyFarm &other) = delete; + /// Delete copy assignment operator. + BodyFarm &operator=(const BodyFarm &other) = delete; + private: typedef llvm::DenseMap<const Decl *, std::optional<Stmt *>> BodyMap; diff --git a/clang/include/clang/Sema/ParsedAttr.h b/clang/include/clang/Sema/ParsedAttr.h index 345c3c89edca7..837725c079807 100644 --- a/clang/include/clang/Sema/ParsedAttr.h +++ b/clang/include/clang/Sema/ParsedAttr.h @@ -696,11 +696,13 @@ class AttributePool { AttributePool(AttributeFactory &factory) : Factory(factory) {} AttributePool(const AttributePool &) = delete; + AttributePool &operator=(const AttributePool &) = delete; ~AttributePool() { Factory.reclaimPool(*this); } /// Move the given pool's allocations to this pool. AttributePool(AttributePool &&pool) = default; + AttributePool &operator=(AttributePool &&pool) = default; AttributeFactory &getFactory() const { return Factory; } @@ -912,6 +914,7 @@ class ParsedAttributes : public ParsedAttributesView { public: ParsedAttributes(AttributeFactory &factory) : pool(factory) {} ParsedAttributes(const ParsedAttributes &) = delete; + ParsedAttributes &operator=(const ParsedAttributes &) = delete; AttributePool &getPool() const { return pool; } diff --git a/clang/lib/Analysis/UnsafeBufferUsage.cpp b/clang/lib/Analysis/UnsafeBufferUsage.cpp index 7871fed519b98..700a09445b508 100644 --- a/clang/lib/Analysis/UnsafeBufferUsage.cpp +++ b/clang/lib/Analysis/UnsafeBufferUsage.cpp @@ -762,7 +762,9 @@ class Strategy { public: Strategy() = default; Strategy(const Strategy &) = delete; // Let's avoid copies. + Strategy &operator=(const Strategy &) = delete; Strategy(Strategy &&) = default; + Strategy &operator=(Strategy &&) = default; void set(const VarDecl *VD, Kind K) { Map[VD] = K; } diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index 90c30fce0a8e7..363f7569acd3e 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -42,6 +42,7 @@ namespace clang { Code(serialization::STMT_NULL_PTR), AbbrevToUse(0) {} ASTStmtWriter(const ASTStmtWriter&) = delete; + ASTStmtWriter &operator=(const ASTStmtWriter &) = delete; uint64_t Emit() { assert(Code != serialization::STMT_NULL_PTR && _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits