[clang] bfb686b - Thread Safety Analysis: Move opcode comparison to Comparator (NFC)
Aaron Puchert via cfe-commits
cfe-commits at lists.llvm.org
Sun Jul 13 15:11:56 PDT 2025
Author: Aaron Puchert
Date: 2025-07-14T00:10:15+02:00
New Revision: bfb686bb5ba503e9386dc899e1ebbe2488e6a0a8
URL: https://github.com/llvm/llvm-project/commit/bfb686bb5ba503e9386dc899e1ebbe2488e6a0a8
DIFF: https://github.com/llvm/llvm-project/commit/bfb686bb5ba503e9386dc899e1ebbe2488e6a0a8.diff
LOG: Thread Safety Analysis: Move opcode comparison to Comparator (NFC)
The switch assumes that both operands have the same opcode, so it's
probably cleaner if we do the comparison there. This also deduplicates
the comparison.
Added:
Modified:
clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
Removed:
################################################################################
diff --git a/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h b/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
index 6fc55130655a2..acab8bcdc1dab 100644
--- a/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
+++ b/clang/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h
@@ -312,7 +312,9 @@ class Comparator {
Self *self() { return reinterpret_cast<Self *>(this); }
public:
- bool compareByCase(const SExpr *E1, const SExpr* E2) {
+ bool compare(const SExpr *E1, const SExpr *E2) {
+ if (E1->opcode() != E2->opcode())
+ return false;
switch (E1->opcode()) {
#define TIL_OPCODE_DEF(X) \
case COP_##X: \
@@ -338,12 +340,6 @@ class EqualsComparator : public Comparator<EqualsComparator> {
bool compareStrings (StringRef s, StringRef r) { return s == r; }
bool comparePointers(const void* P, const void* Q) { return P == Q; }
- bool compare(const SExpr *E1, const SExpr* E2) {
- if (E1->opcode() != E2->opcode())
- return false;
- return compareByCase(E1, E2);
- }
-
// TODO -- handle alpha-renaming of variables
void enterScope(const Variable *V1, const Variable *V2) {}
void leaveScope() {}
@@ -377,9 +373,7 @@ class MatchComparator : public Comparator<MatchComparator> {
if (E1->opcode() == COP_Wildcard || E2->opcode() == COP_Wildcard)
return true;
// otherwise normal equality.
- if (E1->opcode() != E2->opcode())
- return false;
- return compareByCase(E1, E2);
+ return Comparator::compare(E1, E2);
}
// TODO -- handle alpha-renaming of variables
More information about the cfe-commits
mailing list