forked from OSchip/llvm-project
Expose language options to the checkers; disable UseNullptrCheck when not compiling in C++11 mode.
llvm-svn: 246209
This commit is contained in:
parent
199fa13fff
commit
ed916fa458
|
@ -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;
|
||||
|
|
|
@ -212,6 +212,7 @@ void ClangTidyContext::setCurrentFile(StringRef File) {
|
|||
|
||||
void ClangTidyContext::setASTContext(ASTContext *Context) {
|
||||
DiagEngine->SetArgToStringFn(&FormatASTNodeDiagnosticArgument, Context);
|
||||
LangOpts = Context->getLangOpts();
|
||||
}
|
||||
|
||||
const ClangTidyGlobalOptions &ClangTidyContext::getGlobalOptions() const {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -453,7 +453,9 @@ void UseNullptrCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
|
|||
}
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue