https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108637
--- Comment #2 from Li Shaohua <shaohua.li at inf dot ethz.ch> --- (In reply to Andrew Pinski from comment #1) > PRE removes the load/stores from/to *f . > Basically the compiler is able to remove the use-after-scope usage with -O2 > and above. Well, this makes sense to me while in this case only -O2 not other opt levels did not report this use-after-scope usage.