Eugene.Zelenko added inline comments.
================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:1 +//===--- UnnecessaryCopyOnLastUseCheck.cpp - +// clang-tidy-----------------------===// ---------------- Please make single line. ================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:228 + // Result.Nodes.getNodeAs<CXXConstructExpr>("constructExpr"); + const auto *const DeclOfParam = Param->getDecl(); + const auto *const FunctionOfDeclContext = ---------------- Please don't use auto unless type is explicitly spelled in same statement or iterator. ================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:229 + const auto *const DeclOfParam = Param->getDecl(); + const auto *const FunctionOfDeclContext = + DeclOfParam->getParentFunctionOrMethod(); ---------------- Ditto. ================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:257 + + auto DefiniteLastUse = definiteLastUse( + Result.Context, getOrCreateCFG(FunctionOfDecl, Result.Context), Param); ---------------- Ditto. ================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:273 + + auto &&SM = *Result.SourceManager; + auto EndLoc = Lexer::getLocForEndOfToken(Param->getLocation(), 0, SM, ---------------- Ditto. ================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:274 + auto &&SM = *Result.SourceManager; + auto EndLoc = Lexer::getLocForEndOfToken(Param->getLocation(), 0, SM, + Result.Context->getLangOpts()); ---------------- Ditto. ================ Comment at: clang-tools-extra/clang-tidy/performance/UnnecessaryCopyOnLastUseCheck.cpp:335 +} // namespace clang::tidy::performance \ No newline at end of file ---------------- Please fix. ================ Comment at: clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-on-last-use.rst:6 + +Finds variables of non-trivially-copyable types, that are used in a copy construction on their last usage and suggest to wrap the usage in a `std::move`. +The usage just before an assignment is interpreted as last usage. ---------------- Please synchronize with Release Notes, follow 80 characters limit and use double back-ticks for language constructs. ================ Comment at: clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-on-last-use.rst:9 + +Many programmers tend to forget `std::move` for variables that can be moved. +Instead, the compiler creates implicit copies, which can significantly decrease performance. ---------------- Double back-ticks. ================ Comment at: clang-tools-extra/docs/clang-tidy/checks/performance/unnecessary-copy-on-last-use.rst:12 + + +Example: ---------------- Excessive newline. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137205/new/ https://reviews.llvm.org/D137205 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits