diff options
author | Jonathan Coe <jbcoe@me.com> | 2016-08-02 21:18:37 +0000 |
---|---|---|
committer | Jonathan Coe <jbcoe@me.com> | 2016-08-02 21:18:37 +0000 |
commit | 77ec263e6025155850f117c934ae11eceaba5f3a (patch) | |
tree | dfeb80312feeb81c156fbfcb9a37e38cd99b0ac0 /clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h | |
parent | 6eb1ca74165a4e17d4f0193e879e729170257e39 (diff) | |
download | bcm5719-llvm-77ec263e6025155850f117c934ae11eceaba5f3a.tar.gz bcm5719-llvm-77ec263e6025155850f117c934ae11eceaba5f3a.zip |
[clang-tidy] Fix segfault in cppcore-guidelines-special-member-functions check
Summary:
Use a set rather than a vector of defined special member functions so
that multiple declarations of the same function are only counted once.
Move some private static member functions into the cpp file.
Run clang-format on header.
Reviewers: ericLemanissier, Prazek, aaron.ballman
Subscribers: Prazek, cfe-commits, nemanjai
Projects: #clang-tools-extra
Differential Revision: https://reviews.llvm.org/D23008
llvm-svn: 277523
Diffstat (limited to 'clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h')
-rw-r--r-- | clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h index 508ce6411cf..227d3591cf0 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.h @@ -1,4 +1,4 @@ -//===--- SpecialMemberFunctionsCheck.h - clang-tidy-------------------*- C++ -*-===// +//===--- SpecialMemberFunctionsCheck.h - clang-tidy--------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -41,15 +41,11 @@ public: using ClassDefId = std::pair<SourceLocation, std::string>; - using ClassDefiningSpecialMembersMap = llvm::DenseMap<ClassDefId, llvm::SmallVector<SpecialMemberFunctionKind, 5>>; + using ClassDefiningSpecialMembersMap = + llvm::DenseMap<ClassDefId, + llvm::SmallSetVector<SpecialMemberFunctionKind, 5>>; private: - - static llvm::StringRef toString(SpecialMemberFunctionKind K); - - static std::string join(llvm::ArrayRef<SpecialMemberFunctionKind> SMFS, - llvm::StringRef AndOr); - ClassDefiningSpecialMembersMap ClassWithSpecialMembers; }; @@ -65,7 +61,7 @@ template <> struct DenseMapInfo< clang::tidy::cppcoreguidelines::SpecialMemberFunctionsCheck::ClassDefId> { using ClassDefId = - clang::tidy::cppcoreguidelines::SpecialMemberFunctionsCheck::ClassDefId; + clang::tidy::cppcoreguidelines::SpecialMemberFunctionsCheck::ClassDefId; static inline ClassDefId getEmptyKey() { return ClassDefId( |