https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89990
--- Comment #1 from Eric Blake <eblake at redhat dot com> --- Other references to compound initializers going out of scope and causing problems: https://stackoverflow.com/questions/47691857/lifetime-of-a-compound-literal https://wiki.sei.cmu.edu/confluence/display/c/DCL21-C.+Understand+the+storage+of+compound+literals Having the compiler flag the programmer's use of undefined behavior, especially where the use-after-free SEEMS to work because an earlier version of the compiler deferred cleanup of the stack space until the function exited (even though it was entitled to do so as soon as the conditional's scope ended), would be handy.