[clang] f545c2c - [clang][NFC] Don't copy into a vector just to iterate in `IsInitListMemberExprInitialized` (#169385)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 25 10:15:43 PST 2025
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;
More information about the cfe-commits
mailing list