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 ProgramState *handleAssign(const ProgramState *state,
125 const ProgramState *handleAssign(const ProgramState *state,
130 const ProgramState *invalidateIterators(const ProgramState *state,
138 const MemRegion *getRegion(const ProgramState *state,
230 const ProgramState *IteratorsChecker::invalidateIterators(const ProgramState *state,
232 IteratorState::EntryMap Map = state->get<IteratorState>();
234 return state;
236 // Loop over the entries in the current state.
242 state = state->set<IteratorState>(I.getKey(), RefState::getInvalid(ME));
245 return state;
249 const ProgramState *IteratorsChecker::handleAssign(const ProgramState *state,
257 SVal sv = state->getSVal(lexp);
260 return state;
265 return invalidateIterators(state, MR, 0);
269 return state;
270 return handleAssign(state, MR, rexp, LC);
274 const ProgramState *IteratorsChecker::handleAssign(const ProgramState *state,
277 state = state->set<IteratorState>(MR, RefState::getUnknown());
289 return state;
292 return state;
296 return state;
297 const MemRegion *IMR = state->getRegion(VD, LC);
299 return state;
306 return state->set<IteratorState>(MR, RefState::getBeginValid(IMR));
309 return state->set<IteratorState>(MR, RefState::getEndValid(IMR));
311 return state->set<IteratorState>(MR, RefState::getUnknown());
317 return state;
321 return state;
322 const MemRegion *IMR = state->getRegion(VD, LC);
324 return state;
326 const RefState *RS = state->get<IteratorState>(IMR);
328 return state;
329 // Use it to set the state of the LValue.
330 return state->set<IteratorState>(MR, *RS);
337 state = handleAssign( state, MR, OCE->getArg(0), LC);
338 const RefState *RS = state->get<IteratorState>(MR);
341 return state;
343 return handleAssign(state, MR, OCE->getArg(1), LC);
347 return state;
379 const MemRegion *IteratorsChecker::getRegion(const ProgramState *state,
388 return state->getRegion(VD, LC);
397 const ProgramState *state = C.getState();
398 const MemRegion *MR = getRegion(state, E,
403 // Get the state associated with the iterator.
404 const RefState *RS = state->get<IteratorState>(MR);
464 // and handle assigning and set target state appropriately. Otherwise, for
470 const ProgramState *state = C.getState();
474 state = handleAssign(state, OCE->getArg(0), OCE->getArg(1), LC);
475 C.addTransition(state);
486 MR0 = getRegion(state, OCE->getArg(0), LC);
489 MR1 = getRegion(state, OCE->getArg(1), LC);
493 RS0 = state->get<IteratorState>(MR0);
496 RS1 = state->get<IteratorState>(MR1);
527 const ProgramState *state = C.getState();
528 Loc VarLoc = state->getLValue(VD, C.getPredecessor()->getLocationContext());
532 state = state->set<IteratorState>(MR, RefState::getUndefined());
548 state = handleAssign(state, MR, InitEx,
553 C.addTransition(state);
586 const ProgramState *state = C.getState();
593 if (!state->contains<CalledReserved>(MR))
594 state = invalidateIterators(state, MR, ME);
600 state = state->add<CalledReserved>(MR);
602 if (state != C.getState())
603 C.addTransition(state);