diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2014-08-13 13:57:57 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2014-08-13 13:57:57 +0000 |
commit | 498cce575f348ae645561665fcfd0d5ef83280db (patch) | |
tree | 244186fc4bf3c21916f6112ab194aa89e2e87069 /clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp | |
parent | 0a5eb23bbdd65ede49ac6a3d0d101c963ed455d3 (diff) | |
download | bcm5719-llvm-498cce575f348ae645561665fcfd0d5ef83280db.tar.gz bcm5719-llvm-498cce575f348ae645561665fcfd0d5ef83280db.zip |
[clang-tidy] Add a generic header guard checker + LLVM implementation.
The implementation is split into a generic part and a LLVM-specific part.
Other codebases can implement it with their own style. The specific features
supported are:
- Verification (and fixing) of header guards against a style based on the file path
- Automatic insertion of header guards for headers that are missing them
- A warning when the header guard doesn't enable our fancy header guard optimization
(e.g. when there's an include preceeding the guard)
- Automatic insertion of a comment with the guard name after #endif.
For the LLVM style we disable #endif comments for now, they're not very common
in the codebase. We also only flag headers in the include directories, there
doesn't seem to be a common style outside.
Differential Revision: http://reviews.llvm.org/D4867
llvm-svn: 215548
Diffstat (limited to 'clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp b/clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp index 0586525228b..a8ef6299028 100644 --- a/clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp +++ b/clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp @@ -10,6 +10,7 @@ #include "../ClangTidy.h" #include "../ClangTidyModule.h" #include "../ClangTidyModuleRegistry.h" +#include "HeaderGuardCheck.h" #include "IncludeOrderCheck.h" #include "NamespaceCommentCheck.h" #include "TwineLocalCheck.h" @@ -21,6 +22,8 @@ class LLVMModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { CheckFactories.addCheckFactory( + "llvm-header-guard", new ClangTidyCheckFactory<LLVMHeaderGuardCheck>()); + CheckFactories.addCheckFactory( "llvm-include-order", new ClangTidyCheckFactory<IncludeOrderCheck>()); CheckFactories.addCheckFactory( "llvm-namespace-comment", |