Optional<unsigned> ExprEngine::getPendingInitLoop(ProgramStateRef State,
const CXXConstructExpr *E,
const LocationContext *LCtx) {
-
- return Optional<unsigned>::create(
- State->get<PendingInitLoop>({E, LCtx->getStackFrame()}));
+ const unsigned *V = State->get<PendingInitLoop>({E, LCtx->getStackFrame()});
+ return V ? Optional(*V) : std::nullopt;
}
ProgramStateRef ExprEngine::removePendingInitLoop(ProgramStateRef State,
ExprEngine::getIndexOfElementToConstruct(ProgramStateRef State,
const CXXConstructExpr *E,
const LocationContext *LCtx) {
-
- return Optional<unsigned>::create(
- State->get<IndexOfElementToConstruct>({E, LCtx->getStackFrame()}));
+ const unsigned *V =
+ State->get<IndexOfElementToConstruct>({E, LCtx->getStackFrame()});
+ return V ? Optional(*V) : std::nullopt;
}
ProgramStateRef
const LocationContext *LCtx) {
assert(LCtx && "LocationContext shouldn't be null!");
- return Optional<unsigned>::create(
- State->get<PendingArrayDestruction>(LCtx->getStackFrame()));
+ const unsigned *V =
+ State->get<PendingArrayDestruction>(LCtx->getStackFrame());
+ return V ? Optional(*V) : std::nullopt;
}
ProgramStateRef ExprEngine::setPendingArrayDestruction(
const ConstructionContextItem &Item,
const LocationContext *LC) {
ConstructedObjectKey Key(Item, LC->getStackFrame());
- return Optional<SVal>::create(State->get<ObjectsUnderConstruction>(Key));
+ const SVal *V = State->get<ObjectsUnderConstruction>(Key);
+ return V ? Optional(*V) : std::nullopt;
}
ProgramStateRef