https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91195
--- Comment #7 from Jeffrey A. Law <law at redhat dot com> --- It's inherent in the transformation you're making. You're introducing loads on paths where they didn't exist before. Depending on the exact circumstances you may trigger an uninit warning. It's worth nothing that the uninit pass isn't terribly good with memory references and as a result it's easy to get missed warnings. You may need to mark the memory loads you generate with TREE_NO_WARNING or something similar.