[llvm] [CaptureTracking] Don't require offset to stay the same (PR #201106)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 07:14:57 PDT 2026


================
@@ -935,7 +935,7 @@ bool llvm::isBaseOfObject(const Value *V) {
 bool llvm::isEscapeSource(const Value *V) {
   if (auto *CB = dyn_cast<CallBase>(V)) {
     if (isIntrinsicReturningPointerAliasingArgumentWithoutCapturing(
-            CB, /*MustPreserveOffset=*/true))
+            CB, /*MustPreserveOffset=*/false))
----------------
nikic wrote:

I think this would be hard because getUnderlyingObject() looks through these as well. So I think this would require something fragile like exactly matching the recursion limit in getUnderlyingObject().

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


More information about the llvm-commits mailing list