Author: aaronballman Date: Thu Aug 27 16:17:47 2015 New Revision: 246209 URL: http://llvm.org/viewvc/llvm-project?rev=246209&view=rev Log: Expose language options to the checkers; disable UseNullptrCheck when not compiling in C++11 mode.
Added: clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.c Modified: clang-tools-extra/trunk/clang-tidy/ClangTidy.h clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp Modified: clang-tools-extra/trunk/clang-tidy/ClangTidy.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidy.h?rev=246209&r1=246208&r2=246209&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidy.h (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidy.h Thu Aug 27 16:17:47 2015 @@ -158,6 +158,8 @@ protected: OptionsView Options; /// \brief Returns the main file name of the current translation unit. StringRef getCurrentMainFile() const { return Context->getCurrentFile(); } + /// \brief Returns the language options from the context. + LangOptions getLangOpts() const { return Context->getLangOpts(); } }; class ClangTidyCheckFactories; Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp?rev=246209&r1=246208&r2=246209&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.cpp Thu Aug 27 16:17:47 2015 @@ -212,6 +212,7 @@ void ClangTidyContext::setCurrentFile(St void ClangTidyContext::setASTContext(ASTContext *Context) { DiagEngine->SetArgToStringFn(&FormatASTNodeDiagnosticArgument, Context); + LangOpts = Context->getLangOpts(); } const ClangTidyGlobalOptions &ClangTidyContext::getGlobalOptions() const { Modified: clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h?rev=246209&r1=246208&r2=246209&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h (original) +++ clang-tools-extra/trunk/clang-tidy/ClangTidyDiagnosticConsumer.h Thu Aug 27 16:17:47 2015 @@ -149,6 +149,9 @@ public: /// \brief Sets ASTContext for the current translation unit. void setASTContext(ASTContext *Context); + /// \brief Gets the language options from the AST context + LangOptions getLangOpts() const { return LangOpts; } + /// \brief Returns the name of the clang-tidy check which produced this /// diagnostic ID. StringRef getCheckName(unsigned DiagnosticID) const; @@ -198,6 +201,8 @@ private: ClangTidyOptions CurrentOptions; std::unique_ptr<GlobList> CheckFilter; + LangOptions LangOpts; + ClangTidyStats Stats; llvm::DenseMap<unsigned, std::string> CheckNamesByDiagnosticID; Modified: clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp?rev=246209&r1=246208&r2=246209&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/modernize/UseNullptrCheck.cpp Thu Aug 27 16:17:47 2015 @@ -453,7 +453,9 @@ void UseNullptrCheck::storeOptions(Clang } void UseNullptrCheck::registerMatchers(MatchFinder *Finder) { - Finder->addMatcher(makeCastSequenceMatcher(), this); + // Only register the matcher for C++11. + if (getLangOpts().CPlusPlus11) + Finder->addMatcher(makeCastSequenceMatcher(), this); } void UseNullptrCheck::check(const MatchFinder::MatchResult &Result) { Added: clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.c URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.c?rev=246209&view=auto ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.c (added) +++ clang-tools-extra/trunk/test/clang-tidy/modernize-use-nullptr.c Thu Aug 27 16:17:47 2015 @@ -0,0 +1,10 @@ +// RUN: clang-tidy %s -checks=-*,modernize-use-nullptr -- | count 0 + +// Note: this test expects no diagnostics, but FileCheck cannot handle that, +// hence the use of | count 0. + +#define NULL 0 +void f(void) { + char *str = NULL; // ok + (void)str; +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits