Implemented clang-tidy-check-specific options.

Summary:
Each check can implement readOptions and storeOptions methods to read
and store custom options. Each check's options are stored in a local namespace
to avoid name collisions and provide some sort of context to the user.

Reviewers: bkramer, klimek

Reviewed By: klimek

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5296

llvm-svn: 217661
diff --git a/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp
index c408c9c..810d557 100644
--- a/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.cpp
@@ -18,8 +18,10 @@
 namespace clang {
 namespace tidy {
 
-ArgumentCommentCheck::ArgumentCommentCheck()
-    : IdentRE("^(/\\* *)([_A-Za-z][_A-Za-z0-9]*)( *= *\\*/)$") {}
+ArgumentCommentCheck::ArgumentCommentCheck(StringRef Name,
+                                           ClangTidyContext *Context)
+    : ClangTidyCheck(Name, Context),
+      IdentRE("^(/\\* *)([_A-Za-z][_A-Za-z0-9]*)( *= *\\*/)$") {}
 
 void ArgumentCommentCheck::registerMatchers(MatchFinder *Finder) {
   Finder->addMatcher(
diff --git a/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.h b/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.h
index 762e08f..131b56a 100644
--- a/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.h
+++ b/clang-tools-extra/clang-tidy/misc/ArgumentCommentCheck.h
@@ -19,7 +19,7 @@
 /// \brief Checks that argument comments match parameter names.
 class ArgumentCommentCheck : public ClangTidyCheck {
 public:
-  ArgumentCommentCheck();
+  ArgumentCommentCheck(StringRef Name, ClangTidyContext *Context);
 
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
diff --git a/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversion.h b/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversion.h
index 16c0d63..d6c6dfe 100644
--- a/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversion.h
+++ b/clang-tools-extra/clang-tidy/misc/BoolPointerImplicitConversion.h
@@ -23,6 +23,8 @@
 /// }
 class BoolPointerImplicitConversion : public ClangTidyCheck {
 public:
+  BoolPointerImplicitConversion(StringRef Name, ClangTidyContext *Context)
+      : ClangTidyCheck(Name, Context) {}
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
 };
diff --git a/clang-tools-extra/clang-tidy/misc/RedundantSmartptrGet.h b/clang-tools-extra/clang-tidy/misc/RedundantSmartptrGet.h
index 32268c2..8883275 100644
--- a/clang-tools-extra/clang-tidy/misc/RedundantSmartptrGet.h
+++ b/clang-tools-extra/clang-tidy/misc/RedundantSmartptrGet.h
@@ -23,6 +23,8 @@
 ///   *ptr->get()  ==>  **ptr
 class RedundantSmartptrGet : public ClangTidyCheck {
 public:
+  RedundantSmartptrGet(StringRef Name, ClangTidyContext *Context)
+      : ClangTidyCheck(Name, Context) {}
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
 };
diff --git a/clang-tools-extra/clang-tidy/misc/SwappedArgumentsCheck.h b/clang-tools-extra/clang-tidy/misc/SwappedArgumentsCheck.h
index 9dbdad1..42293cd 100644
--- a/clang-tools-extra/clang-tidy/misc/SwappedArgumentsCheck.h
+++ b/clang-tools-extra/clang-tidy/misc/SwappedArgumentsCheck.h
@@ -19,6 +19,8 @@
 /// conversions.
 class SwappedArgumentsCheck : public ClangTidyCheck {
 public:
+  SwappedArgumentsCheck(StringRef Name, ClangTidyContext *Context)
+      : ClangTidyCheck(Name, Context) {}
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
 };
diff --git a/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.h b/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.h
index 1e24d08..1afe355 100644
--- a/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.h
+++ b/clang-tools-extra/clang-tidy/misc/UndelegatedConstructor.h
@@ -20,6 +20,8 @@
 /// meant to use a delegating constructor or base class initializer.
 class UndelegatedConstructorCheck : public ClangTidyCheck {
 public:
+  UndelegatedConstructorCheck(StringRef Name, ClangTidyContext *Context)
+      : ClangTidyCheck(Name, Context) {}
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
 };
diff --git a/clang-tools-extra/clang-tidy/misc/UnusedRAII.h b/clang-tools-extra/clang-tidy/misc/UnusedRAII.h
index 6850ab9..4d45c4a 100644
--- a/clang-tools-extra/clang-tidy/misc/UnusedRAII.h
+++ b/clang-tools-extra/clang-tidy/misc/UnusedRAII.h
@@ -37,6 +37,8 @@
 ///   - Ignore objects returned from a call.
 class UnusedRAIICheck : public ClangTidyCheck {
 public:
+  UnusedRAIICheck(StringRef Name, ClangTidyContext *Context)
+      : ClangTidyCheck(Name, Context) {}
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
 };
diff --git a/clang-tools-extra/clang-tidy/misc/UseOverride.h b/clang-tools-extra/clang-tidy/misc/UseOverride.h
index 0f91177..aab40b5 100644
--- a/clang-tools-extra/clang-tidy/misc/UseOverride.h
+++ b/clang-tools-extra/clang-tidy/misc/UseOverride.h
@@ -18,6 +18,8 @@
 /// \brief Use C++11's 'override' and remove 'virtual' where applicable.
 class UseOverride : public ClangTidyCheck {
 public:
+  UseOverride(StringRef Name, ClangTidyContext *Context)
+      : ClangTidyCheck(Name, Context) {}
   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
 };