[clang] [analyzer] Discard non-live source frames from the current stack (PR #213779)
Balázs Benics via cfe-commits
cfe-commits at lists.llvm.org
Wed Aug 5 04:52:11 PDT 2026
================
@@ -52,6 +52,11 @@ static bool isDanglingStackSource(const MemRegion *Source,
})) {
return false;
}
+ // Only a source whose frame is still live on the current stack can
+ // dangle. If that frame is not on the stack then the source outlives
+ // the returned value. The source is still alive when the returned value
+ // is used, so it does not dangle.
+ return is_contained(make_pointer_range(C.stackframes()), SF);
----------------
steakhal wrote:
If we unconditionally return here, isn't the rest of the statements at this indentation level dead code?
https://github.com/llvm/llvm-project/pull/213779
More information about the cfe-commits
mailing list