diff options
-rw-r--r-- | tools/clang/plugins/ChromeClassTester.cpp | 9 | ||||
-rw-r--r-- | tools/clang/plugins/ChromeClassTester.h | 6 | ||||
-rw-r--r-- | tools/clang/plugins/FindBadConstructs.cpp | 13 |
3 files changed, 21 insertions, 7 deletions
diff --git a/tools/clang/plugins/ChromeClassTester.cpp b/tools/clang/plugins/ChromeClassTester.cpp index c61271b..f32fbf1 100644 --- a/tools/clang/plugins/ChromeClassTester.cpp +++ b/tools/clang/plugins/ChromeClassTester.cpp @@ -37,10 +37,12 @@ bool ends_with(const std::string& one, const std::string& two) { } // namespace ChromeClassTester::ChromeClassTester(CompilerInstance& instance, - bool check_inner_classes) + bool check_inner_classes, + bool check_cc_directory) : instance_(instance), diagnostic_(instance.getDiagnostics()), - check_inner_classes_(check_inner_classes) { + check_inner_classes_(check_inner_classes), + check_cc_directory_(check_cc_directory) { BuildBannedLists(); } @@ -163,6 +165,9 @@ void ChromeClassTester::BuildBannedLists() { banned_directories_.push_back("icu4c/"); banned_directories_.push_back("frameworks/"); + if (!check_cc_directory_) + banned_directories_.push_back("cc/"); + // Don't check autogenerated headers. // Make puts them below $(builddir_name)/.../gen and geni. // Ninja puts them below OUTPUT_DIR/.../gen diff --git a/tools/clang/plugins/ChromeClassTester.h b/tools/clang/plugins/ChromeClassTester.h index fe11fcd..07ead95 100644 --- a/tools/clang/plugins/ChromeClassTester.h +++ b/tools/clang/plugins/ChromeClassTester.h @@ -17,7 +17,8 @@ class ChromeClassTester : public clang::ASTConsumer { public: explicit ChromeClassTester(clang::CompilerInstance& instance, - bool check_inner_classes); + bool check_inner_classes, + bool check_cc_directory); virtual ~ChromeClassTester(); // clang::ASTConsumer: @@ -83,6 +84,9 @@ class ChromeClassTester : public clang::ASTConsumer { // TODO: Remove once all inner classes are cleaned up. bool check_inner_classes_; + + // TODO(jamesr): Remove once cc/ directory compiles without warnings. + bool check_cc_directory_; }; #endif // TOOLS_CLANG_PLUGINS_CHROMECLASSTESTER_H_ diff --git a/tools/clang/plugins/FindBadConstructs.cpp b/tools/clang/plugins/FindBadConstructs.cpp index b9e1f5b..0c41d7c 100644 --- a/tools/clang/plugins/FindBadConstructs.cpp +++ b/tools/clang/plugins/FindBadConstructs.cpp @@ -51,8 +51,9 @@ class FindBadConstructsConsumer : public ChromeClassTester { FindBadConstructsConsumer(CompilerInstance& instance, bool check_refcounted_dtors, bool check_virtuals_in_implementations, - bool check_inner_classes) - : ChromeClassTester(instance, check_inner_classes), + bool check_inner_classes, + bool check_cc_directory) + : ChromeClassTester(instance, check_inner_classes, check_cc_directory), check_refcounted_dtors_(check_refcounted_dtors), check_virtuals_in_implementations_(check_virtuals_in_implementations) { } @@ -397,7 +398,8 @@ class FindBadConstructsAction : public PluginASTAction { FindBadConstructsAction() : check_refcounted_dtors_(true), check_virtuals_in_implementations_(true), - check_inner_classes_(false) { + check_inner_classes_(false), + check_cc_directory_(false) { } protected: @@ -406,7 +408,7 @@ class FindBadConstructsAction : public PluginASTAction { llvm::StringRef ref) { return new FindBadConstructsConsumer( instance, check_refcounted_dtors_, check_virtuals_in_implementations_, - check_inner_classes_); + check_inner_classes_, check_cc_directory_); } virtual bool ParseArgs(const CompilerInstance& instance, @@ -420,6 +422,8 @@ class FindBadConstructsAction : public PluginASTAction { check_virtuals_in_implementations_ = false; } else if (args[i] == "check-inner-classes") { check_inner_classes_ = true; + } else if (args[i] == "check-cc-directory") { + check_cc_directory_ = true; } else { parsed = false; llvm::errs() << "Unknown argument: " << args[i] << "\n"; @@ -433,6 +437,7 @@ class FindBadConstructsAction : public PluginASTAction { bool check_refcounted_dtors_; bool check_virtuals_in_implementations_; bool check_inner_classes_; + bool check_cc_directory_; }; } // namespace |