reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
  561   const auto *Func = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  569       const auto *InstCall = cast<CXXInstanceCall>(&Call);
  571         handleAssign(C, InstCall->getCXXThisVal(), Call.getOriginExpr(),
  572                      Call.getArgSVal(0));
  579       const auto *OrigExpr = Call.getOriginExpr();
  583       if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) {
  584         handleComparison(C, OrigExpr, Call.getReturnValue(),
  585                          InstCall->getCXXThisVal(), Call.getArgSVal(0), Op);
  589       handleComparison(C, OrigExpr, Call.getReturnValue(), Call.getArgSVal(0),
  589       handleComparison(C, OrigExpr, Call.getReturnValue(), Call.getArgSVal(0),
  590                          Call.getArgSVal(1), Op);
  593       if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) {
  594         if (Call.getNumArgs() >= 1 &&
  595               Call.getArgExpr(0)->getType()->isIntegralOrEnumerationType()) {
  597                                  Call.getReturnValue(),
  598                                  InstCall->getCXXThisVal(), Call.getArgSVal(0));
  602         if (Call.getNumArgs() >= 2 &&
  603               Call.getArgExpr(1)->getType()->isIntegralOrEnumerationType()) {
  605                                  Call.getReturnValue(), Call.getArgSVal(0),
  605                                  Call.getReturnValue(), Call.getArgSVal(0),
  606                                  Call.getArgSVal(1));
  611       if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) {
  612         handleIncrement(C, Call.getReturnValue(), InstCall->getCXXThisVal(),
  613                         Call.getNumArgs());
  617       handleIncrement(C, Call.getReturnValue(), Call.getArgSVal(0),
  617       handleIncrement(C, Call.getReturnValue(), Call.getArgSVal(0),
  618                       Call.getNumArgs());
  621       if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) {
  622         handleDecrement(C, Call.getReturnValue(), InstCall->getCXXThisVal(),
  623                         Call.getNumArgs());
  627       handleDecrement(C, Call.getReturnValue(), Call.getArgSVal(0),
  627       handleDecrement(C, Call.getReturnValue(), Call.getArgSVal(0),
  628                         Call.getNumArgs());
  632     if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) {
  664         handleInsert(C, Call.getArgSVal(0));
  669         if (Call.getNumArgs() == 1) {
  670           handleErase(C, Call.getArgSVal(0));
  674         if (Call.getNumArgs() == 2) {
  675           handleErase(C, Call.getArgSVal(0), Call.getArgSVal(1));
  675           handleErase(C, Call.getArgSVal(0), Call.getArgSVal(1));
  681         if (Call.getNumArgs() == 1) {
  682           handleEraseAfter(C, Call.getArgSVal(0));
  686         if (Call.getNumArgs() == 2) {
  687           handleEraseAfter(C, Call.getArgSVal(0), Call.getArgSVal(1));
  687           handleEraseAfter(C, Call.getArgSVal(0), Call.getArgSVal(1));
  693     const auto *OrigExpr = Call.getOriginExpr();
  697     if (!isIteratorType(Call.getResultType()))
  702     if (const auto *InstCall = dyn_cast<CXXInstanceCall>(&Call)) {
  704         handleBegin(C, OrigExpr, Call.getReturnValue(),
  710         handleEnd(C, OrigExpr, Call.getReturnValue(),
  717     if (getIteratorPosition(State, Call.getReturnValue()))
  721     if (isa<CXXConstructorCall>(&Call) && Call.getNumArgs() == 1) {
  721     if (isa<CXXConstructorCall>(&Call) && Call.getNumArgs() == 1) {
  722       if (const auto *Pos = getIteratorPosition(State, Call.getArgSVal(0))) {
  723         State = setIteratorPosition(State, Call.getReturnValue(), *Pos);
  725           State = removeIteratorPosition(State, Call.getArgSVal(0));
  737     for (unsigned i = 0; i < Call.getNumArgs(); ++i) {
  738       if (isIteratorType(Call.getArgExpr(i)->getType())) {
  739         if (const auto *Pos = getIteratorPosition(State, Call.getArgSVal(i))) {
  740           assignToContainer(C, OrigExpr, Call.getReturnValue(),