[clang] 11528fc - [Clang] Fix Static Code Analysis Concerns with copy without assign
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 22 12:36:46 PDT 2023
Author: Manna, Soumi
Date: 2023-06-22T12:36:26-07:00
New Revision: 11528fceac6bb8a8d11749fb5ec5ea1baf27b1d1
URL: https://github.com/llvm/llvm-project/commit/11528fceac6bb8a8d11749fb5ec5ea1baf27b1d1
DIFF: https://github.com/llvm/llvm-project/commit/11528fceac6bb8a8d11749fb5ec5ea1baf27b1d1.diff
LOG: [Clang] Fix Static Code Analysis Concerns with copy without assign
This patch adds missing assignment operator to the class which has user-defined copy constructor.
Reviewed By: tahonermann, aaronpuchert
Differential Revision: https://reviews.llvm.org/D150931
Added:
Modified:
clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
Removed:
################################################################################
diff --git a/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h b/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
index 9e03b4badd121..65dd66ee093fe 100644
--- a/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
+++ b/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h
@@ -319,6 +319,7 @@ class SExpr {
protected:
SExpr(TIL_Opcode Op) : Opcode(Op) {}
SExpr(const SExpr &E) : Opcode(E.Opcode), Flags(E.Flags) {}
+ SExpr &operator=(const SExpr &) = delete;
const TIL_Opcode Opcode;
unsigned char Reserved = 0;
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
index ffd6af528b8f4..a44ca660cd07d 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
@@ -84,6 +84,10 @@ class CallEventRef : public IntrusiveRefCntPtr<const T> {
CallEventRef(const T *Call) : IntrusiveRefCntPtr<const T>(Call) {}
CallEventRef(const CallEventRef &Orig) : IntrusiveRefCntPtr<const T>(Orig) {}
+ // The copy assignment operator is defined as deleted pending further
+ // motivation.
+ CallEventRef &operator=(const CallEventRef &) = delete;
+
CallEventRef<T> cloneWithState(ProgramStateRef State) const {
return this->get()->template cloneWithState<T>(State);
}
More information about the cfe-commits
mailing list