[clang] [analyzer][NFC] Merge `BlockInvocationContext` class into `StackFrameContext` (PR #194857)

Balázs Benics via cfe-commits cfe-commits at lists.llvm.org
Fri May 1 03:23:48 PDT 2026


================
@@ -1004,15 +1004,15 @@ getStackOrCaptureRegionForDeclContext(const LocationContext *LC,
     if (const auto *SFC = dyn_cast<StackFrameContext>(LC)) {
       if (cast<DeclContext>(SFC->getDecl()) == DC)
         return SFC;
-    }
-    if (const auto *BC = dyn_cast<BlockInvocationContext>(LC)) {
-      const auto *BR = static_cast<const BlockDataRegion *>(BC->getData());
-      // FIXME: This can be made more efficient.
-      for (auto Var : BR->referenced_vars()) {
-        const TypedValueRegion *OrigR = Var.getOriginalRegion();
-        if (const auto *VR = dyn_cast<VarRegion>(OrigR)) {
-          if (VR->getDecl() == VD)
-            return cast<VarRegion>(Var.getCapturedRegion());
+      if (SFC->getData()) {
+        // FIXME: This can be made more efficient.
+        for (auto Var : static_cast<const BlockDataRegion *>(SFC->getData())
+                            ->referenced_vars()) {
----------------
steakhal wrote:

```suggestion
      if (const auto *BDR =
              static_cast<const BlockDataRegion *>(SFC->getData())) {
        // FIXME: This can be made more efficient.
        for (auto Var : BDR->referenced_vars()) {
```

https://github.com/llvm/llvm-project/pull/194857


More information about the cfe-commits mailing list