https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60517
--- Comment #18 from Marc Glisse <glisse at gcc dot gnu.org> --- The .uninit dump for the original testcase now looks like: double foo(A) (struct A a) { double SR.1; <bb 2>: return SR.1_2(D); } which the uninit pass would warn about, except that SR.1 is marked TREE_NO_WARNING (possibly since the temporary created by the front-end). If someone wants to look into that...