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


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to