[PATCH] D115386: AST: Avoid using SmallVector::set_size() in UnresolvedSet

Duncan P. N. Exon Smith via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Dec 8 13:02:53 PST 2021


dexonsmith created this revision.
dexonsmith added a reviewer: dblaikie.
dexonsmith requested review of this revision.
Herald added a project: clang.

Update UnresolvedSet to use (and expose) `SmallVector::truncate()` instead
of `SmallVector::set_size()`. The latter is going to made private in a
future commit to avoid misuse.

Currently depends on https://reviews.llvm.org/D115383. It seems to improve readability to use `truncate()` instead of `resize()` (known to shrink the size), and it keeps an assertion in place (not sure of value?) that this doesn't grow. I can't imagine the former's performance characteristics are important here, so I could be convinced to just use `resize()`...

Blocker for https://reviews.llvm.org/D115380.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D115386

Files:
  clang/include/clang/AST/UnresolvedSet.h
  clang/lib/Sema/SemaLookup.cpp


Index: clang/lib/Sema/SemaLookup.cpp
===================================================================
--- clang/lib/Sema/SemaLookup.cpp
+++ clang/lib/Sema/SemaLookup.cpp
@@ -620,7 +620,7 @@
     getSema().diagnoseEquivalentInternalLinkageDeclarations(
         getNameLoc(), HasNonFunction, EquivalentNonFunctions);
 
-  Decls.set_size(N);
+  Decls.truncate(N);
 
   if (HasNonFunction && (HasFunction || HasUnresolved))
     Ambiguous = true;
Index: clang/include/clang/AST/UnresolvedSet.h
===================================================================
--- clang/include/clang/AST/UnresolvedSet.h
+++ clang/include/clang/AST/UnresolvedSet.h
@@ -121,7 +121,7 @@
   void setAccess(iterator I, AccessSpecifier AS) { I.I->setAccess(AS); }
 
   void clear() { decls().clear(); }
-  void set_size(unsigned N) { decls().set_size(N); }
+  void truncate(unsigned N) { decls().truncate(N); }
 
   bool empty() const { return decls().empty(); }
   unsigned size() const { return decls().size(); }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D115386.392899.patch
Type: text/x-patch
Size: 995 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211208/ffaac2d1/attachment.bin>


More information about the cfe-commits mailing list