summaryrefslogtreecommitdiffstats
path: root/clang/include
diff options
context:
space:
mode:
authorGeorge Karpenkov <ekarpenkov@apple.com>2018-08-06 23:09:07 +0000
committerGeorge Karpenkov <ekarpenkov@apple.com>2018-08-06 23:09:07 +0000
commit4ece68a0a8d2f788761b898f8142534a456d7dd5 (patch)
treecf1a79b1146ffa6f4c2aa8e02e1c58f620506792 /clang/include
parent08f3fe4fae9f54e796471e2afa7e2b11be2041bb (diff)
downloadbcm5719-llvm-4ece68a0a8d2f788761b898f8142534a456d7dd5.tar.gz
bcm5719-llvm-4ece68a0a8d2f788761b898f8142534a456d7dd5.zip
[analyzer] Add ASTContext to CheckerManager
Some checkers require ASTContext. Having it in the constructor saves a lot of boilerplate of having to pass it around. Differential Revision: https://reviews.llvm.org/D50111 llvm-svn: 339079
Diffstat (limited to 'clang/include')
-rw-r--r--clang/include/clang/StaticAnalyzer/Core/CheckerManager.h6
-rw-r--r--clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h8
-rw-r--r--clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h4
3 files changed, 10 insertions, 8 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h b/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
index ea2952b3b11..463c842ec5b 100644
--- a/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
+++ b/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h
@@ -115,13 +115,14 @@ enum class ObjCMessageVisitKind {
};
class CheckerManager {
+ ASTContext &Context;
const LangOptions LangOpts;
AnalyzerOptions &AOptions;
CheckName CurrentCheckName;
public:
- CheckerManager(const LangOptions &langOpts, AnalyzerOptions &AOptions)
- : LangOpts(langOpts), AOptions(AOptions) {}
+ CheckerManager(ASTContext &Context, AnalyzerOptions &AOptions)
+ : Context(Context), LangOpts(Context.getLangOpts()), AOptions(AOptions) {}
~CheckerManager();
@@ -134,6 +135,7 @@ public:
const LangOptions &getLangOpts() const { return LangOpts; }
AnalyzerOptions &getAnalyzerOptions() { return AOptions; }
+ ASTContext &getASTContext() { return Context; }
using CheckerRef = CheckerBase *;
using CheckerTag = const void *;
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
index 85369509efc..eb91f4b28b9 100644
--- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
+++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h
@@ -46,14 +46,12 @@ class AnalysisManager : public BugReporterData {
public:
AnalyzerOptions &options;
- AnalysisManager(ASTContext &ctx,DiagnosticsEngine &diags,
- const LangOptions &lang,
+ AnalysisManager(ASTContext &ctx, DiagnosticsEngine &diags,
const PathDiagnosticConsumers &Consumers,
StoreManagerCreator storemgr,
ConstraintManagerCreator constraintmgr,
- CheckerManager *checkerMgr,
- AnalyzerOptions &Options,
- CodeInjector* injector = nullptr);
+ CheckerManager *checkerMgr, AnalyzerOptions &Options,
+ CodeInjector *injector = nullptr);
~AnalysisManager() override;
diff --git a/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h b/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
index 216a2359efb..61709548aed 100644
--- a/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
+++ b/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h
@@ -10,6 +10,7 @@
#ifndef LLVM_CLANG_STATICANALYZER_FRONTEND_CHECKERREGISTRATION_H
#define LLVM_CLANG_STATICANALYZER_FRONTEND_CHECKERREGISTRATION_H
+#include "clang/AST/ASTContext.h"
#include "clang/Basic/LLVM.h"
#include <functional>
#include <memory>
@@ -25,7 +26,8 @@ namespace ento {
class CheckerRegistry;
std::unique_ptr<CheckerManager> createCheckerManager(
- AnalyzerOptions &opts, const LangOptions &langOpts,
+ ASTContext &context,
+ AnalyzerOptions &opts,
ArrayRef<std::string> plugins,
ArrayRef<std::function<void(CheckerRegistry &)>> checkerRegistrationFns,
DiagnosticsEngine &diags);
OpenPOWER on IntegriCloud