NoQ added inline comments. ================ Comment at: lib/Analysis/CloneDetection.cpp:91 @@ +90,3 @@ + ASTContext &Context; + std::vector<unsigned> &CollectedData; + ---------------- Maybe it's a good idea to introduce a typedef for `unsigned` here, because it'd be nice to be able to change it (eg., some day we may desire to switch to uint64_t).
================ Comment at: lib/Analysis/CloneDetection.cpp:119 @@ +118,3 @@ + // with zeroes. + if (Str.size() % sizeof(unsigned)) + CollectedData.push_back(0); ---------------- Maybe just allocate the right amount of bytes during resize? Some usual trick with rounding up, eg. `(x + y - 1) / y`. ================ Comment at: lib/Analysis/CloneDetection.cpp:134 @@ +133,3 @@ + DEF_ADD_DATA(Stmt, { addData(S->getStmtClass()); }) + DEF_ADD_DATA(Expr, { addData(S->getType()); }) + ---------------- I noticed something: with this patch, you no longer consider the kind of the statement for supported statement types (even for, say, `Expr`), because the visitor doesn't automatically fall back to parent classes when a method for the child class is defined. Is this intentional? Or you may want to visit some statements with parent methods manually. ================ Comment at: lib/Analysis/CloneDetection.cpp:148 @@ +147,3 @@ + DEF_ADD_DATA(CallExpr, + { addData(S->getDirectCallee()->getQualifiedNameAsString()); }) + ---------------- I wonder how much we can save if we use a few pointers-based hashes instead of hashing long fully-qualified names, for stuff like function decls or types. Uhm, by the way, in fact C++ overloaded functions have same qualified names, do we consider that? I guess sub-statement hashing would most likely take care of that. ================ Comment at: test/Analysis/copypaste/test-asm.cpp:1 @@ +1,2 @@ +// RUN: %clang_cc1 -analyze -std=c++11 -analyzer-checker=alpha.clone.CloneChecker -verify %s + ---------------- Do we really need to prefix all test file names with "`test-`"? It's kind of obvious :) https://reviews.llvm.org/D22514 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits