Lines Matching defs:MovingCall
54 // occurs after 'MovingCall' (the expression that performs the move). If a
57 std::optional<UseAfterMove> find(Stmt *CodeBlock, const Expr *MovingCall,
62 const Expr *MovingCall,
99 UseAfterMoveFinder::find(Stmt *CodeBlock, const Expr *MovingCall,
120 const CFGBlock *MoveBlock = BlockMap->blockContainingStmt(MovingCall);
122 // This can happen if MovingCall is in a constructor initializer, which is
129 findInternal(MoveBlock, MovingCall, MovedVariable->getDecl());
149 UseAfterMoveFinder::findInternal(const CFGBlock *Block, const Expr *MovingCall,
156 if (!MovingCall)
166 // If `Reinit` is identical to `MovingCall`, we're looking at a move-to-self
170 if (MovingCall && Reinit != MovingCall &&
171 Sequence->potentiallyAfter(MovingCall, Reinit))
180 if (!MovingCall || Sequence->potentiallyAfter(Use, MovingCall)) {
199 MovingCall != nullptr &&
200 Sequence->potentiallyAfter(MovingCall, Use);
405 static void emitDiagnostic(const Expr *MovingCall, const DeclRefExpr *MoveArg,
409 const SourceLocation MoveLoc = MovingCall->getExprLoc();
490 const auto *MovingCall = Result.Nodes.getNodeAs<Expr>("moving-call");
494 if (!MovingCall || !MovingCall->getExprLoc().isValid())
495 MovingCall = CallMove;
525 if (auto Use = Finder.find(CodeBlock, MovingCall, Arg))
526 emitDiagnostic(MovingCall, Arg, *Use, this, Result.Context,