[all-commits] [llvm/llvm-project] 90d42b: [clang-tidy] Skip private default ctors in moderni...
Alexander Shaposhnikov via All-commits
all-commits at lists.llvm.org
Thu Oct 20 15:05:05 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 90d42b1cab04b76e9e934f1e5076f014d1195e72
https://github.com/llvm/llvm-project/commit/90d42b1cab04b76e9e934f1e5076f014d1195e72
Author: Alexander Shaposhnikov <ashaposhnikov at google.com>
Date: 2022-10-20 (Thu, 20 Oct 2022)
Changed paths:
M clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-cxx17.cpp
A clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default-cxx20.cpp
M clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp
Log Message:
-----------
[clang-tidy] Skip private default ctors in modernize-use-equals-default
For c++17 (i.e. before c++20) making a private default ctor explicitly defaulted
might expose the previously intentionally disallowed initializations, e.g.
class Tag { Tag() {} friend class Widget; }; is not equivalent to
class Tag { Tag() = default; friend class Widget; };
since in the latter case Tag is treated as an aggregate despite having a declaration
of the default constructor. This diff makes modernize-use-equals-default skip
in-class empty nonpublic default ctors to avoid code breakages.
Test plan: ninja check-all
Differential revision: https://reviews.llvm.org/D136224
More information about the All-commits
mailing list