[clang] cf1f1b7 - [analyzer][NFC] Uplift checkers after D126801
Balazs Benics via cfe-commits
cfe-commits at lists.llvm.org
Thu Jun 2 10:52:17 PDT 2022
Author: Balazs Benics
Date: 2022-06-02T19:46:38+02:00
New Revision: cf1f1b7240a35c5e1d4bc2cd3626ba8432949c98
URL: https://github.com/llvm/llvm-project/commit/cf1f1b7240a35c5e1d4bc2cd3626ba8432949c98
DIFF: https://github.com/llvm/llvm-project/commit/cf1f1b7240a35c5e1d4bc2cd3626ba8432949c98.diff
LOG: [analyzer][NFC] Uplift checkers after D126801
Reviewed By: martong
Differential Revision: https://reviews.llvm.org/D126802
Added:
Modified:
clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
Removed:
################################################################################
diff --git a/clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp b/clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
index 6cdbcc65f6a6e..e39f783aa0cf9 100644
--- a/clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/ErrnoModeling.cpp
@@ -68,13 +68,7 @@ class ErrnoModeling
/// Store a MemRegion that contains the 'errno' integer value.
/// The value is null if the 'errno' value was not recognized in the AST.
-REGISTER_TRAIT_WITH_PROGRAMSTATE(ErrnoRegion, const void *)
-
-/// An internal function accessing the errno region.
-/// Returns null if there isn't any associated memory region.
-static const MemRegion *getErrnoRegion(ProgramStateRef State) {
- return reinterpret_cast<const MemRegion *>(State->get<ErrnoRegion>());
-}
+REGISTER_TRAIT_WITH_PROGRAMSTATE(ErrnoRegion, const MemRegion *)
/// Search for a variable called "errno" in the AST.
/// Return nullptr if not found.
@@ -185,7 +179,7 @@ bool ErrnoModeling::evalCall(const CallEvent &Call, CheckerContext &C) const {
if (ErrnoLocationCalls.contains(Call)) {
ProgramStateRef State = C.getState();
- const MemRegion *ErrnoR = getErrnoRegion(State);
+ const MemRegion *ErrnoR = State->get<ErrnoRegion>();
if (!ErrnoR)
return false;
@@ -201,7 +195,7 @@ bool ErrnoModeling::evalCall(const CallEvent &Call, CheckerContext &C) const {
void ErrnoModeling::checkLiveSymbols(ProgramStateRef State,
SymbolReaper &SR) const {
// The special errno region should never garbage collected.
- if (const auto *ErrnoR = getErrnoRegion(State))
+ if (const MemRegion *ErrnoR = State->get<ErrnoRegion>())
SR.markLive(ErrnoR);
}
@@ -210,7 +204,7 @@ namespace ento {
namespace errno_modeling {
Optional<SVal> getErrnoValue(ProgramStateRef State) {
- const MemRegion *ErrnoR = getErrnoRegion(State);
+ const MemRegion *ErrnoR = State->get<ErrnoRegion>();
if (!ErrnoR)
return {};
QualType IntTy = State->getAnalysisManager().getASTContext().IntTy;
@@ -219,7 +213,7 @@ Optional<SVal> getErrnoValue(ProgramStateRef State) {
ProgramStateRef setErrnoValue(ProgramStateRef State,
const LocationContext *LCtx, SVal Value) {
- const MemRegion *ErrnoR = getErrnoRegion(State);
+ const MemRegion *ErrnoR = State->get<ErrnoRegion>();
if (!ErrnoR)
return State;
return State->bindLoc(loc::MemRegionVal{ErrnoR}, Value, LCtx);
@@ -227,7 +221,7 @@ ProgramStateRef setErrnoValue(ProgramStateRef State,
ProgramStateRef setErrnoValue(ProgramStateRef State, CheckerContext &C,
uint64_t Value) {
- const MemRegion *ErrnoR = getErrnoRegion(State);
+ const MemRegion *ErrnoR = State->get<ErrnoRegion>();
if (!ErrnoR)
return State;
return State->bindLoc(
diff --git a/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
index 17d3c042ac403..49e939be69017 100644
--- a/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
@@ -101,7 +101,7 @@ REGISTER_TRAIT_WITH_PROGRAMSTATE(CalledInit, bool)
/// 'self' contains. This keeps the "self flags" assigned to the 'self'
/// object before the call so we can assign them to the new object that 'self'
/// points to after the call.
-REGISTER_TRAIT_WITH_PROGRAMSTATE(PreCallSelfFlags, unsigned)
+REGISTER_TRAIT_WITH_PROGRAMSTATE(PreCallSelfFlags, SelfFlagEnum)
static SelfFlagEnum getSelfFlags(SVal val, ProgramStateRef state) {
if (SymbolRef sym = val.getAsSymbol())
@@ -251,11 +251,12 @@ void ObjCSelfInitChecker::checkPreCall(const CallEvent &CE,
for (unsigned i = 0; i < NumArgs; ++i) {
SVal argV = CE.getArgSVal(i);
if (isSelfVar(argV, C)) {
- unsigned selfFlags = getSelfFlags(state->getSVal(argV.castAs<Loc>()), C);
+ SelfFlagEnum selfFlags =
+ getSelfFlags(state->getSVal(argV.castAs<Loc>()), C);
C.addTransition(state->set<PreCallSelfFlags>(selfFlags));
return;
} else if (hasSelfFlag(argV, SelfFlag_Self, C)) {
- unsigned selfFlags = getSelfFlags(argV, C);
+ SelfFlagEnum selfFlags = getSelfFlags(argV, C);
C.addTransition(state->set<PreCallSelfFlags>(selfFlags));
return;
}
More information about the cfe-commits
mailing list