summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2014-06-05 13:31:45 +0000
committerAlexander Kornienko <alexfh@google.com>2014-06-05 13:31:45 +0000
commita46952221e44cb53b707bca433b5177191de779d (patch)
tree37dc2ed74d55a6923b224b86f55027fdf7e9991d /clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
parent57eba53a015e1541e6d8a89382a23d9adc7ebf3b (diff)
downloadbcm5719-llvm-a46952221e44cb53b707bca433b5177191de779d.tar.gz
bcm5719-llvm-a46952221e44cb53b707bca433b5177191de779d.zip
Allow per-file clang-tidy options.
Summary: This patch makes it possible for clang-tidy clients to provide different options for different translation units. The option, which doesn't make sense to be file-dependent, was moved to a separate ClangTidyGlobalOptions struct. Added parsing of ClangTidyOptions. Reviewers: klimek Reviewed By: klimek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3979 llvm-svn: 210260
Diffstat (limited to 'clang-tools-extra/clang-tidy/ClangTidyOptions.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/ClangTidyOptions.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
index fcf66ee8a61..93e12ca0870 100644
--- a/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
+++ b/clang-tools-extra/clang-tidy/ClangTidyOptions.cpp
@@ -10,6 +10,7 @@
#include "ClangTidyOptions.h"
#include "llvm/Support/YAMLTraits.h"
+using clang::tidy::ClangTidyOptions;
using clang::tidy::FileFilter;
LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR(FileFilter)
@@ -46,6 +47,14 @@ template <> struct MappingTraits<FileFilter> {
}
};
+template <> struct MappingTraits<ClangTidyOptions> {
+ static void mapping(IO &IO, ClangTidyOptions &Options) {
+ IO.mapOptional("Checks", Options.Checks);
+ IO.mapOptional("HeaderFilterRegex", Options.HeaderFilterRegex);
+ IO.mapOptional("AnalyzeTemporaryDtors", Options.AnalyzeTemporaryDtors);
+ }
+};
+
} // namespace yaml
} // namespace llvm
@@ -54,11 +63,18 @@ namespace tidy {
/// \brief Parses -line-filter option and stores it to the \c Options.
llvm::error_code parseLineFilter(const std::string &LineFilter,
- clang::tidy::ClangTidyOptions &Options) {
+ clang::tidy::ClangTidyGlobalOptions &Options) {
llvm::yaml::Input Input(LineFilter);
Input >> Options.LineFilter;
return Input.error();
}
+llvm::error_code parseConfiguration(const std::string &Config,
+ clang::tidy::ClangTidyOptions &Options) {
+ llvm::yaml::Input Input(Config);
+ Input >> Options;
+ return Input.error();
+}
+
} // namespace tidy
} // namespace clang
OpenPOWER on IntegriCloud