https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120822
Jean-Yves Lefort <jylefort at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jylefort at gmail dot com --- Comment #2 from Jean-Yves Lefort <jylefort at gmail dot com> --- I've just reported #121433 which is somewhat similar, and I agree with rockeet's analysis. In the fa() case, and in my testcase in #121433, I don't see how the compiler can abide by the as-if rule without a std::move. This is just my understanding tho, as I don't have access to the C++23 standard (I don't care about what gcc emits in this or that case, I only care about what gcc should emit as per the specs).