Lines Matching full:state

31 void taint::printTaint(ProgramStateRef State, raw_ostream &Out, const char *NL,
33 TaintMapTy TM = State->get<TaintMap>();
42 void taint::dumpTaint(ProgramStateRef State) {
43 printTaint(State, llvm::errs());
46 ProgramStateRef taint::addTaint(ProgramStateRef State, const Stmt *S,
49 return addTaint(State, State->getSVal(S, LCtx), Kind);
52 ProgramStateRef taint::addTaint(ProgramStateRef State, SVal V,
56 return addTaint(State, Sym, Kind);
69 State->getStateManager().getStoreManager().getDefaultBinding(
72 return addPartialTaint(State, Sym, LCV->getRegion(), Kind);
77 return addTaint(State, R, Kind);
80 ProgramStateRef taint::addTaint(ProgramStateRef State, const MemRegion *R,
83 return addTaint(State, SR->getSymbol(), Kind);
84 return State;
87 ProgramStateRef taint::addTaint(ProgramStateRef State, SymbolRef Sym,
94 ProgramStateRef NewState = State->set<TaintMap>(Sym, Kind);
99 ProgramStateRef taint::removeTaint(ProgramStateRef State, SVal V) {
102 return removeTaint(State, Sym);
105 return removeTaint(State, R);
108 ProgramStateRef taint::removeTaint(ProgramStateRef State, const MemRegion *R) {
110 return removeTaint(State, SR->getSymbol());
111 return State;
114 ProgramStateRef taint::removeTaint(ProgramStateRef State, SymbolRef Sym) {
120 ProgramStateRef NewState = State->remove<TaintMap>(Sym);
125 ProgramStateRef taint::addPartialTaint(ProgramStateRef State,
130 if (const TaintTagType *T = State->get<TaintMap>(ParentSym))
132 return State;
136 return addTaint(State, ParentSym, Kind);
138 const TaintedSubRegions *SavedRegs = State->get<DerivedSymTaint>(ParentSym);
139 TaintedSubRegions::Factory &F = State->get_context<TaintedSubRegions>();
143 ProgramStateRef NewState = State->set<DerivedSymTaint>(ParentSym, Regs);
148 bool taint::isTainted(ProgramStateRef State, const Stmt *S,
150 return !getTaintedSymbolsImpl(State, S, LCtx, Kind, /*ReturnFirstOnly=*/true)
154 bool taint::isTainted(ProgramStateRef State, SVal V, TaintTagType Kind) {
155 return !getTaintedSymbolsImpl(State, V, Kind, /*ReturnFirstOnly=*/true)
159 bool taint::isTainted(ProgramStateRef State, const MemRegion *Reg,
161 return !getTaintedSymbolsImpl(State, Reg, K, /*ReturnFirstOnly=*/true)
165 bool taint::isTainted(ProgramStateRef State, SymbolRef Sym, TaintTagType Kind) {
166 return !getTaintedSymbolsImpl(State, Sym, Kind, /*ReturnFirstOnly=*/true)
170 std::vector<SymbolRef> taint::getTaintedSymbols(ProgramStateRef State,
174 return getTaintedSymbolsImpl(State, S, LCtx, Kind, /*ReturnFirstOnly=*/false);
177 std::vector<SymbolRef> taint::getTaintedSymbols(ProgramStateRef State, SVal V,
179 return getTaintedSymbolsImpl(State, V, Kind, /*ReturnFirstOnly=*/false);
182 std::vector<SymbolRef> taint::getTaintedSymbols(ProgramStateRef State,
185 return getTaintedSymbolsImpl(State, Sym, Kind, /*ReturnFirstOnly=*/false);
188 std::vector<SymbolRef> taint::getTaintedSymbols(ProgramStateRef State,
191 return getTaintedSymbolsImpl(State, Reg, Kind, /*ReturnFirstOnly=*/false);
194 std::vector<SymbolRef> taint::getTaintedSymbolsImpl(ProgramStateRef State,
199 SVal val = State->getSVal(S, LCtx);
200 return getTaintedSymbolsImpl(State, val, Kind, returnFirstOnly);
203 std::vector<SymbolRef> taint::getTaintedSymbolsImpl(ProgramStateRef State,
207 return getTaintedSymbolsImpl(State, Sym, Kind, returnFirstOnly);
209 return getTaintedSymbolsImpl(State, Reg, Kind, returnFirstOnly);
212 StoreManager &StoreMgr = State->getStateManager().getStoreManager();
214 return getTaintedSymbolsImpl(State, *DefaultVal, Kind, returnFirstOnly);
221 std::vector<SymbolRef> taint::getTaintedSymbolsImpl(ProgramStateRef State,
232 getTaintedSymbolsImpl(State, ER->getIndex(), K, returnFirstOnly);
241 getTaintedSymbolsImpl(State, SR->getSymbol(), K, returnFirstOnly);
251 getTaintedSymbolsImpl(State, ER->getSuperRegion(), K, returnFirstOnly);
260 std::vector<SymbolRef> taint::getTaintedSymbolsImpl(ProgramStateRef State,
269 if (const auto &Opts = State->getAnalysisManager().getAnalyzerOptions();
279 if (const TaintTagType *Tag = State->get<TaintMap>(SubSym)) {
290 State, SD->getParentSymbol(), Kind, returnFirstOnly);
299 State->get<DerivedSymTaint>(SD->getParentSymbol())) {
318 getTaintedSymbolsImpl(State, SRV->getRegion(), Kind, returnFirstOnly);
327 getTaintedSymbolsImpl(State, SC->getOperand(), Kind, returnFirstOnly);