https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47679
--- Comment #30 from Jeffrey A. Law <law at redhat dot com> --- AFACT the testcase in c#16 is bogus. If i is never equal to k, then opt is never assigned any value. It's then used in the conditional outside the loop. That's how it looks at the source level and that's also what it looks like in the dom2 dump.