aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2025-02-22 13:33:15 -0800
committerGitHub <noreply@github.com>2025-02-22 13:33:15 -0800
commitd2616cc3926ec0ac73ec547e04b64e045035bd3c (patch)
tree21945b1126f02a4b92ced3dc21a0e68dc6ad780c /clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
parent6db96c9ecc781c742f546d2863632d44e9c9b435 (diff)
downloadllvm-d2616cc3926ec0ac73ec547e04b64e045035bd3c.zip
llvm-d2616cc3926ec0ac73ec547e04b64e045035bd3c.tar.gz
llvm-d2616cc3926ec0ac73ec547e04b64e045035bd3c.tar.bz2
[analyzer] Fix use after scope after #123003 (#128372)
In #123003 make_first_range was applied to temporarily.
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
index 48fa0eb..3aafb53 100644
--- a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
@@ -203,8 +203,8 @@ void StackAddrEscapeChecker::checkAsyncExecutedBlockCaptures(
// a variable of the type "dispatch_semaphore_t".
if (isSemaphoreCaptured(*B.getDecl()))
return;
- for (const MemRegion *Region :
- llvm::make_first_range(getCapturedStackRegions(B, C))) {
+ auto Regions = getCapturedStackRegions(B, C);
+ for (const MemRegion *Region : llvm::make_first_range(Regions)) {
// The block passed to dispatch_async may capture another block
// created on the stack. However, there is no leak in this situaton,
// no matter if ARC or no ARC is enabled: