http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60165
--- Comment #2 from Vincent Lefèvre <vincent-gcc at vinc17 dot net> --- Well, the code paths in question do not necessarily exist (you could say the same thing with -O2, where the function is not inlined: there may be some code paths for which fn1() doesn't initialize c). Actually the number of "maybe-uninitialized" warnings should decrease when the optimization level increases, because of additional knowledge, not the opposite.