llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Timm Baeder (tbaederr) <details> <summary>Changes</summary> In most cases, we dony' need the SmallVector (we only use it to reverse the arguments in the assignment operator case). --- Full diff: https://github.com/llvm/llvm-project/pull/218399.diff 1 Files Affected: - (modified) clang/lib/AST/ByteCode/Compiler.cpp (+6-3) ``````````diff diff --git a/clang/lib/AST/ByteCode/Compiler.cpp b/clang/lib/AST/ByteCode/Compiler.cpp index 87d23bf5df0c8..8e139997c2ed1 100644 --- a/clang/lib/AST/ByteCode/Compiler.cpp +++ b/clang/lib/AST/ByteCode/Compiler.cpp @@ -6207,7 +6207,8 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) { } } - SmallVector<const Expr *, 8> Args(ArrayRef(E->getArgs(), E->getNumArgs())); + ArrayRef<const Expr *> Args(E->getArgs(), E->getNumArgs()); + const Expr *ReversedArgs[2]; bool IsAssignmentOperatorCall = false; bool ActivateLHS = false; @@ -6220,7 +6221,9 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) { const CXXRecordDecl *LHSRecord = Args[0]->getType()->getAsCXXRecordDecl(); ActivateLHS = LHSRecord && LHSRecord->hasTrivialDefaultConstructor(); IsAssignmentOperatorCall = true; - std::reverse(Args.begin(), Args.end()); + ReversedArgs[0] = Args[1]; + ReversedArgs[1] = Args[0]; + Args = ReversedArgs; } // Calling a static operator will still // pass the instance, but we don't need it. @@ -6231,7 +6234,7 @@ bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) { if (!this->discard(E->getArg(0))) return false; // Drop first arg. - Args.erase(Args.begin()); + Args = Args.drop_front(); } } `````````` </details> https://github.com/llvm/llvm-project/pull/218399 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
