diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2017-03-13 21:39:00 +0000 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2017-03-13 21:39:00 +0000 |
commit | 9dd8caad1f955119c3804029f72bd443986f3dc9 (patch) | |
tree | 613fb9b22fbe98dfcdaed99098ba8b613ead2ffe /clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h | |
parent | 38a91a0de661967b3609d044e63985101d69e153 (diff) | |
download | bcm5719-llvm-9dd8caad1f955119c3804029f72bd443986f3dc9.tar.gz bcm5719-llvm-9dd8caad1f955119c3804029f72bd443986f3dc9.zip |
Add the 'AllowSoleDefaultDtor' and 'AllowMissingMoveFunctions' options to the cppcoreguidelines-special-member-functions check.
Patch by Florian Gross.
llvm-svn: 297671
Diffstat (limited to 'clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h')
-rw-r--r-- | clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h index c4e31c2f457..bb4c31d80ec 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h @@ -25,14 +25,16 @@ namespace cppcoreguidelines { /// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-special-member-functions.html class SpecialMemberFunctionsCheck : public ClangTidyCheck { public: - SpecialMemberFunctionsCheck(StringRef Name, ClangTidyContext *Context) - : ClangTidyCheck(Name, Context) {} + SpecialMemberFunctionsCheck(StringRef Name, ClangTidyContext *Context); + void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; void onEndOfTranslationUnit() override; enum class SpecialMemberFunctionKind : uint8_t { Destructor, + DefaultDestructor, + NonDefaultDestructor, CopyConstructor, CopyAssignment, MoveConstructor, @@ -46,6 +48,12 @@ public: llvm::SmallVector<SpecialMemberFunctionKind, 5>>; private: + void checkForMissingMembers( + const ClassDefId &ID, + llvm::ArrayRef<SpecialMemberFunctionKind> DefinedSpecialMembers); + + const bool AllowMissingMoveFunctions; + const bool AllowSoleDefaultDtor; ClassDefiningSpecialMembersMap ClassWithSpecialMembers; }; |