https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78713
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Currently the middle-end only knows about constructors via DECL_CXX_CONSTRUCTOR_P. I suppose it would be more useful to communicate that a function fully initializes an object pointed to by parameter X. That said, still easier to handle in libstdc++. The middle-end needs that extra info to make the store unconditional (it would be still a very odd transform...)