[PATCH] D63324: [clang-tidy] Replace memcpy by std::copy

Jonas Toth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 30 06:48:13 PST 2019


JonasToth added a comment.
Herald added subscribers: wuzish, whisperity.

You need tests for this check. Please harden them against macro-interference as well. I think the transformation should happen as function call that return `Optional` and if any failure happens the diagnostic can still be emitted.



================
Comment at: clang-tools-extra/clang-tidy/modernize/ReplaceMemcpyByStdCopy.cpp:27
+void ReplaceMemcpyByStdCopy::registerMatchers(MatchFinder *Finder) {
+  assert(Finder != nullptr);
+
----------------
this assertion is not necessary. `Finder` is always not-null.


================
Comment at: clang-tools-extra/clang-tidy/modernize/ReplaceMemcpyByStdCopy.cpp:33
+  auto MemcpyMatcher =
+      callExpr(hasDeclaration(functionDecl(hasName("memcpy"),
+                                           isExpansionInSystemHeader())),
----------------
please match on `::memcpy` and `::std::memcpy`.


================
Comment at: clang-tools-extra/clang-tidy/modernize/ReplaceMemcpyByStdCopy.cpp:53
+  const auto *MemcpyNode = Result.Nodes.getNodeAs<CallExpr>("memcpy_function");
+  assert(MemcpyNode != nullptr);
+
----------------
this assertion is not necessary, as you only match on one thing and that means it exists. (otherwise everything is broken already).


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63324/new/

https://reviews.llvm.org/D63324





More information about the cfe-commits mailing list