Author: David Stone Date: 2025-11-25T11:15:39-07:00 New Revision: f545c2cec12f77f1fb61ccf07393f434d456ad94
URL: https://github.com/llvm/llvm-project/commit/f545c2cec12f77f1fb61ccf07393f434d456ad94 DIFF: https://github.com/llvm/llvm-project/commit/f545c2cec12f77f1fb61ccf07393f434d456ad94.diff LOG: [clang][NFC] Don't copy into a vector just to iterate in `IsInitListMemberExprInitialized` (#169385) Added: Modified: clang/lib/Sema/SemaDeclCXX.cpp Removed: ################################################################################ diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 8030aac3d8771..3bc748969065a 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -3782,21 +3782,21 @@ namespace { if (CheckReferenceOnly && !ReferenceField) return true; - llvm::SmallVector<unsigned, 4> UsedFieldIndex; // Discard the first field since it is the field decl that is being // initialized. - for (const FieldDecl *FD : llvm::drop_begin(llvm::reverse(Fields))) - UsedFieldIndex.push_back(FD->getFieldIndex()); - - for (auto UsedIter = UsedFieldIndex.begin(), - UsedEnd = UsedFieldIndex.end(), - OrigIter = InitFieldIndex.begin(), - OrigEnd = InitFieldIndex.end(); - UsedIter != UsedEnd && OrigIter != OrigEnd; ++UsedIter, ++OrigIter) { - if (*UsedIter < *OrigIter) + auto UsedFields = llvm::drop_begin(llvm::reverse(Fields)); + auto UsedIter = UsedFields.begin(); + const auto UsedEnd = UsedFields.end(); + + for (const unsigned Orig : InitFieldIndex) { + if (UsedIter == UsedEnd) + break; + const unsigned UsedIndex = (*UsedIter)->getFieldIndex(); + if (UsedIndex < Orig) return true; - if (*UsedIter > *OrigIter) + if (UsedIndex > Orig) break; + ++UsedIter; } return false; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
