Home | History | Annotate | Download | only in Checkers

Lines Matching full:state

35 // This is the state associated with each iterator which includes both the
36 // kind of state and the instance used to initialize it.
120 const GRState *handleAssign(const GRState *state, const Expr *lexp,
122 const GRState *handleAssign(const GRState *state, const MemRegion *MR,
124 const GRState *invalidateIterators(const GRState *state, const MemRegion *MR,
128 const MemRegion *getRegion(const GRState *state, const Expr *E,
218 const GRState *IteratorsChecker::invalidateIterators(const GRState *state,
220 IteratorState::EntryMap Map = state->get<IteratorState>();
222 return state;
224 // Loop over the entries in the current state.
230 state = state->set<IteratorState>(I.getKey(), RefState::getInvalid(ME));
233 return state;
237 const GRState *IteratorsChecker::handleAssign(const GRState *state,
245 SVal sv = state->getSVal(lexp);
248 return state;
253 return invalidateIterators(state, MR, 0);
257 return state;
258 return handleAssign(state, MR, rexp, LC);
262 const GRState *IteratorsChecker::handleAssign(const GRState *state,
265 state = state->set<IteratorState>(MR, RefState::getUnknown());
277 return state;
280 return state;
284 return state;
285 const MemRegion *IMR = state->getRegion(VD, LC);
287 return state;
294 return state->set<IteratorState>(MR, RefState::getBeginValid(IMR));
297 return state->set<IteratorState>(MR, RefState::getEndValid(IMR));
299 return state->set<IteratorState>(MR, RefState::getUnknown());
305 return state;
309 return state;
310 const MemRegion *IMR = state->getRegion(VD, LC);
312 return state;
314 const RefState *RS = state->get<IteratorState>(IMR);
316 return state;
317 // Use it to set the state of the LValue.
318 return state->set<IteratorState>(MR, *RS);
325 state = handleAssign( state, MR, OCE->getArg(0), LC);
326 const RefState *RS = state->get<IteratorState>(MR);
329 return state;
331 return handleAssign(state, MR, OCE->getArg(1), LC);
335 return state;
367 const MemRegion *IteratorsChecker::getRegion(const GRState *state,
376 return state->getRegion(VD, LC);
385 const GRState *state = C.getState();
386 const MemRegion *MR = getRegion(state, E,
391 // Get the state associated with the iterator.
392 const RefState *RS = state->get<IteratorState>(MR);
452 // and handle assigning and set target state appropriately. Otherwise, for
458 const GRState *state = C.getState();
462 state = handleAssign(state, OCE->getArg(0), OCE->getArg(1), LC);
463 C.addTransition(state);
474 MR0 = getRegion(state, OCE->getArg(0), LC);
477 MR1 = getRegion(state, OCE->getArg(1), LC);
481 RS0 = state->get<IteratorState>(MR0);
484 RS1 = state->get<IteratorState>(MR1);
515 const GRState *state = C.getState();
516 Loc VarLoc = state->getLValue(VD, C.getPredecessor()->getLocationContext());
520 state = state->set<IteratorState>(MR, RefState::getUndefined());
536 state = handleAssign(state, MR, InitEx,
541 C.addTransition(state);
574 const GRState *state = C.getState();
581 if (!state->contains<CalledReserved>(MR))
582 state = invalidateIterators(state, MR, ME);
588 state = state->add<CalledReserved>(MR);
590 if (state != C.getState())
591 C.addTransition(state);