[PATCH] D59670: [Sema] Fix an assert when a block captures a constexpr local

Erik Pilkington via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Mar 26 11:13:35 PDT 2019


erik.pilkington added inline comments.


================
Comment at: clang/lib/Sema/SemaExpr.cpp:15692
+  MaybeODRUseExprSet LocalMaybeODRUseExprs;
+  std::swap(LocalMaybeODRUseExprs, MaybeODRUseExprs);
+
----------------
rjmccall wrote:
> It looks like `SmallPtrSet`'s move constructor does actually guarantee to leave the source empty; you could probably just assert that.  But I don't think there's an algorithmic cost, so this is fine, too.
> 
> Please leave an assertion at the bottom of this function that the set is empty.
If you have to actually check the constructor to verify the client code is doing the right thing then it makes more sense to just be explicit, IMO. New patch adds the assert though.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59670/new/

https://reviews.llvm.org/D59670





More information about the cfe-commits mailing list