Skip to content

Commit f93f6e5

Browse files
authored
[NFC][Clang][analyzer] Const-correct CheckerContext API (#154741)
Improve const-correctness of `CheckerContext` API by defining the missing `const` overloads to its accessor member functions.
1 parent a6e47d1 commit f93f6e5

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,10 +623,12 @@ class BugReporter {
623623
ASTContext &getContext() { return D.getASTContext(); }
624624

625625
const SourceManager &getSourceManager() { return D.getSourceManager(); }
626+
const SourceManager &getSourceManager() const { return D.getSourceManager(); }
626627

627628
const AnalyzerOptions &getAnalyzerOptions() { return D.getAnalyzerOptions(); }
628629

629630
Preprocessor &getPreprocessor() { return D.getPreprocessor(); }
631+
const Preprocessor &getPreprocessor() const { return D.getPreprocessor(); }
630632

631633
/// Get the top-level entry point for the issue to be reported.
632634
const Decl *getAnalysisEntryPoint() const { return AnalysisEntryPoint; }

clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,25 +58,34 @@ class CheckerContext {
5858
AnalysisManager &getAnalysisManager() {
5959
return Eng.getAnalysisManager();
6060
}
61+
const AnalysisManager &getAnalysisManager() const {
62+
return Eng.getAnalysisManager();
63+
}
6164

6265
ConstraintManager &getConstraintManager() {
6366
return Eng.getConstraintManager();
6467
}
68+
const ConstraintManager &getConstraintManager() const {
69+
return Eng.getConstraintManager();
70+
}
6571

6672
StoreManager &getStoreManager() {
6773
return Eng.getStoreManager();
6874
}
75+
const StoreManager &getStoreManager() const { return Eng.getStoreManager(); }
6976

7077
/// Returns the previous node in the exploded graph, which includes
7178
/// the state of the program before the checker ran. Note, checkers should
7279
/// not retain the node in their state since the nodes might get invalidated.
7380
ExplodedNode *getPredecessor() { return Pred; }
81+
const ExplodedNode *getPredecessor() const { return Pred; }
7482
const ProgramPoint getLocation() const { return Location; }
7583
const ProgramStateRef &getState() const { return Pred->getState(); }
7684

7785
/// Check if the checker changed the state of the execution; ex: added
7886
/// a new transition or a bug report.
7987
bool isDifferent() { return Changed; }
88+
bool isDifferent() const { return Changed; }
8089

8190
/// Returns the number of times the current block has been visited
8291
/// along the analyzed path.
@@ -108,24 +117,38 @@ class CheckerContext {
108117
BugReporter &getBugReporter() {
109118
return Eng.getBugReporter();
110119
}
120+
const BugReporter &getBugReporter() const { return Eng.getBugReporter(); }
111121

112122
const SourceManager &getSourceManager() {
113123
return getBugReporter().getSourceManager();
114124
}
125+
const SourceManager &getSourceManager() const {
126+
return getBugReporter().getSourceManager();
127+
}
115128

116129
Preprocessor &getPreprocessor() { return getBugReporter().getPreprocessor(); }
130+
const Preprocessor &getPreprocessor() const {
131+
return getBugReporter().getPreprocessor();
132+
}
117133

118134
SValBuilder &getSValBuilder() {
119135
return Eng.getSValBuilder();
120136
}
137+
const SValBuilder &getSValBuilder() const { return Eng.getSValBuilder(); }
121138

122139
SymbolManager &getSymbolManager() {
123140
return getSValBuilder().getSymbolManager();
124141
}
142+
const SymbolManager &getSymbolManager() const {
143+
return getSValBuilder().getSymbolManager();
144+
}
125145

126146
ProgramStateManager &getStateManager() {
127147
return Eng.getStateManager();
128148
}
149+
const ProgramStateManager &getStateManager() const {
150+
return Eng.getStateManager();
151+
}
129152

130153
AnalysisDeclContext *getCurrentAnalysisDeclContext() const {
131154
return Pred->getLocationContext()->getAnalysisDeclContext();

clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ class ExprEngine {
196196
ASTContext &getContext() const { return AMgr.getASTContext(); }
197197

198198
AnalysisManager &getAnalysisManager() { return AMgr; }
199+
const AnalysisManager &getAnalysisManager() const { return AMgr; }
199200

200201
AnalysisDeclContextManager &getAnalysisDeclContextManager() {
201202
return AMgr.getAnalysisDeclContextManager();
@@ -206,8 +207,10 @@ class ExprEngine {
206207
}
207208

208209
SValBuilder &getSValBuilder() { return svalBuilder; }
210+
const SValBuilder &getSValBuilder() const { return svalBuilder; }
209211

210212
BugReporter &getBugReporter() { return BR; }
213+
const BugReporter &getBugReporter() const { return BR; }
211214

212215
cross_tu::CrossTranslationUnitContext *
213216
getCrossTranslationUnitContext() {
@@ -416,19 +419,27 @@ class ExprEngine {
416419
unsigned int Space, bool IsDot) const;
417420

418421
ProgramStateManager &getStateManager() { return StateMgr; }
422+
const ProgramStateManager &getStateManager() const { return StateMgr; }
419423

420424
StoreManager &getStoreManager() { return StateMgr.getStoreManager(); }
425+
const StoreManager &getStoreManager() const {
426+
return StateMgr.getStoreManager();
427+
}
421428

422429
ConstraintManager &getConstraintManager() {
423430
return StateMgr.getConstraintManager();
424431
}
432+
const ConstraintManager &getConstraintManager() const {
433+
return StateMgr.getConstraintManager();
434+
}
425435

426436
// FIXME: Remove when we migrate over to just using SValBuilder.
427437
BasicValueFactory &getBasicVals() {
428438
return StateMgr.getBasicVals();
429439
}
430440

431441
SymbolManager &getSymbolManager() { return SymMgr; }
442+
const SymbolManager &getSymbolManager() const { return SymMgr; }
432443
MemRegionManager &getRegionManager() { return MRMgr; }
433444

434445
DataTag::Factory &getDataTags() { return Engine.getDataTags(); }

clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,7 +572,11 @@ class ProgramStateManager {
572572
CallEventManager &getCallEventManager() { return *CallEventMgr; }
573573

574574
StoreManager &getStoreManager() { return *StoreMgr; }
575+
const StoreManager &getStoreManager() const { return *StoreMgr; }
575576
ConstraintManager &getConstraintManager() { return *ConstraintMgr; }
577+
const ConstraintManager &getConstraintManager() const {
578+
return *ConstraintMgr;
579+
}
576580
ExprEngine &getOwningEngine() { return *Eng; }
577581

578582
ProgramStateRef

0 commit comments

Comments
 (0)