summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h')
-rw-r--r--clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h b/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h
index 712cd466296..bc5c11e7b71 100644
--- a/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h
+++ b/clang-tools-extra/clang-tidy/readability/NamespaceCommentCheck.h
@@ -26,14 +26,29 @@ public:
NamespaceCommentCheck(StringRef Name, ClangTidyContext *Context);
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
+ void registerPPCallbacks(const SourceManager &SM, Preprocessor *PP,
+ Preprocessor *ModuleExpanderPP) override;
+
+ void addMacro(const std::string &Name, const std::string &Value) noexcept;
private:
void storeOptions(ClangTidyOptions::OptionMap &Options) override;
+ std::string getNamespaceComment(const NamespaceDecl *ND,
+ bool InsertLineBreak);
+ std::string getNamespaceComment(const std::string &NameSpaceName,
+ bool InsertLineBreak);
+ bool isNamespaceMacroDefinition(const StringRef NameSpaceName);
+ std::tuple<bool, StringRef>
+ isNamespaceMacroExpansion(const StringRef NameSpaceName);
llvm::Regex NamespaceCommentPattern;
const unsigned ShortNamespaceLines;
const unsigned SpacesBeforeComments;
llvm::SmallVector<SourceLocation, 4> Ends;
+
+ // Store macros to verify that warning is not thrown when namespace name is a
+ // preprocessed define.
+ std::vector<std::pair<std::string, std::string>> Macros;
};
} // namespace readability
OpenPOWER on IntegriCloud