https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93432
--- Comment #3 from Sven <sven.koehler at gmail dot com> --- I'm not sure how you optimize the uninit use away. When running the example, the first printf typically yields a random value. So the uninitialized value is certainly used as a return value.