https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86277
--- Comment #25 from Mikael Morin <mikael at gcc dot gnu.org> --- (In reply to Mikael Morin from comment #24) > (In reply to Mikael Morin from comment #23) > > > > This regresses on pr108065.f90 (that's a few extra analyzer warnings), > > and on pr69955.f90 (that's one extra __builtin_malloc). > > This removes the regressions. Not fully retested again. > Comment #23 is probably the more correct one. Comment #24 works because of the double temporary. Even if the first temporary has NULL data component, the second one uses malloc unconditionally to set data, and the argument is seen as present.