https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92123
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- Well, lying means that for non-escaped desctiptors A and B doing A.data = malloc(); gfc_desc_to_cfi_desc (&B, &A) B.data and A.data are not considered aliasing. So I'd recommend to not lie here. Yes, there's a letter variant missing for 'r' plus the direct object not escaping. I can see how that might be useful indeed (but with points-to constructing a testcase where this makes a difference won't be easy). So I'd recommend ".w." for correctness, maybe with a comment about what we can guarantee (we also have no "letter" to say indirect pointed-to objects transfer from one argument to another, likely usable for memcpy-like functions as well for example)