[PATCH] D155202: [clang][dataflow] Simplify implementation of `transferStdForwardCall()` in optional check.
Martin Böhme via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Jul 14 00:05:27 PDT 2023
mboehme marked an inline comment as done.
mboehme added inline comments.
================
Comment at: clang/lib/Analysis/FlowSensitive/Models/UncheckedOptionalAccessModel.cpp:683
- StorageLocation *LocRet = State.Env.getStorageLocation(*E, SkipPast::None);
- if (LocRet != nullptr)
- return;
-
- StorageLocation *LocArg =
- State.Env.getStorageLocation(*E->getArg(0), SkipPast::Reference);
-
- if (LocArg == nullptr)
- return;
-
- Value *ValArg = State.Env.getValue(*LocArg);
- if (ValArg == nullptr)
- ValArg = &createOptionalValue(State.Env.makeAtomicBoolValue(), State.Env);
-
- // Create a new storage location
- LocRet = &State.Env.createStorageLocation(*E);
- State.Env.setStorageLocation(*E, *LocRet);
-
- State.Env.setValue(*LocRet, *ValArg);
+ if (auto *Loc = State.Env.getStorageLocationStrict(*E->getArg(0)))
+ State.Env.setStorageLocationStrict(*E, *Loc);
----------------
gribozavr2 wrote:
> Should we add an assert that it is not a value?
`getStorageLocationStrict` already contains such an assertion.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D155202/new/
https://reviews.llvm.org/D155202
More information about the cfe-commits
mailing list