[PATCH] D22982: [CloneDetector] No longer reporting clones that don't have a common referenced variable pattern.

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 1 03:46:20 PDT 2016

NoQ added a comment.

Looks good, minor comments :)

Comment at: lib/Analysis/CloneDetection.cpp:99
@@ +98,3 @@
+  /// Every item in this list is unique.
+  std::vector<const VarDecl *> Variables;
I've a feeling this is essentially a `map<const VarDecl *, size_t>`, because that harmonizes with our access patterns (lookup number by variable, insert the new value `Variables.size()` if not found). So i think a map would express the intention more clearly.

Comment at: lib/Analysis/CloneDetection.cpp:168
@@ +167,3 @@
+    assert(Other.Occurences.size() == Occurences.size());
+    for (unsigned i = 0; i < Occurences.size(); ++i) {
+      if (Occurences[i].KindID != Other.Occurences[i].KindID) {
Because your code uses a lot of fancy C++11, i'd probably suggest to make it even prettier with `std::all_of()`.


More information about the cfe-commits mailing list