================
@@ -664,20 +664,66 @@ class LifetimeSafetySemaHelperImpl : public 
LifetimeSafetySemaHelper {
     return CurrExpr->getSourceRange() != LastExpr->getSourceRange();
   }
 
+  bool shouldCarryHiddenLifetimeBound(const Expr *HiddenExpr,
----------------
iitianpushkar wrote:

That was my initial assumption too but in the above failing case they are not 
both wrappers around the same original call expression.

For `pp = Pointer(p)`, the hidden expression carrying the lifetimebound info 
can be the constructor expression for `Pointer(p)` while `LastExpr` is the 
argument/source expression `p` that the visible alias note is about.

So the pair is more like:

```text
HiddenExpr: Pointer(p)
LastExpr:   p
```
rather than :
```
HiddenExpr: wrapper around Pointer(p)
LastExpr:   another wrapper around Pointer(p)
```

https://github.com/llvm/llvm-project/pull/206337
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to