[all-commits] [llvm/llvm-project] 8d2c09: [clang-tidy] Omit std::make_unique/make_shared for...

Chris Kennelly via All-commits all-commits at lists.llvm.org
Tue Dec 8 07:34:03 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8d2c095e5a6bd34f8bb5cffd5c57c8deea5b8647
      https://github.com/llvm/llvm-project/commit/8d2c095e5a6bd34f8bb5cffd5c57c8deea5b8647
  Author: Chris Kennelly <ckennelly at ckennelly.com>
  Date:   2020-12-08 (Tue, 08 Dec 2020)

  Changed paths:
    M clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
    M clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.h
    M clang-tools-extra/docs/clang-tidy/checks/modernize-make-shared.rst
    M clang-tools-extra/docs/clang-tidy/checks/modernize-make-unique.rst
    M clang-tools-extra/test/clang-tidy/checkers/modernize-make-shared.cpp
    A clang-tools-extra/test/clang-tidy/checkers/modernize-make-unique-default-init.cpp
    M clang-tools-extra/test/clang-tidy/checkers/modernize-make-unique.cpp

  Log Message:
  -----------
  [clang-tidy] Omit std::make_unique/make_shared for default initialization.

This extends the check for default initialization in arrays added in
547f89d6070 to include scalar types and exclude them from the suggested fix for
make_unique/make_shared.

Rewriting std::unique_ptr<int>(new int) as std::make_unique<int>() (or for
other, similar trivial T) switches from default initialization to value
initialization, a performance regression for trivial T.  For these use cases,
std::make_unique_for_overwrite is more suitable alternative.

Reviewed By: hokein

Differential Revision: https://reviews.llvm.org/D90392




More information about the All-commits mailing list