================
@@ -8243,8 +8259,7 @@ class Sema final : public SemaBase {
 
   /// List of SourceLocations where 'self' is implicitly retained inside a
   /// block.
-  llvm::SmallVector<std::pair<SourceLocation, const BlockDecl *>, 1>
-      ImplicitlyRetainedSelfLocs;
+  llvm::SmallVector<BlockCapture, 1> DiagnosableBlockCaptures;
----------------
rjmccall wrote:

Hmm. I am concerned about this being global on `Sema` rather than tied to 
something like a specific function scope info. We might end up diagnosing the 
same thing in multiple places when we have nested functions after the block 
capture, e.g. because of lambdas or local classes — anything that causes us to 
end a function body while the outer function body is still being processed. 
Maybe we just never saw this with the narrow case of implicit `self` captures 
that this was used with before.

https://github.com/llvm/llvm-project/pull/144388
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to