https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113203
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |documentation CC| |hubicka at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- With -Og we specifically disable IPA inlining, not considering that always-inline functions might only appear with LTO. I don't think that cross-TU "always-inline" is sensible, and we probably should not merge the always-inline definition with the not always-inline declaration that's effective for the call in question. So we should accept the code at compile-time but not honor always-inline cross-TU in the way it is presented by the testcase. The bool f(int); declaration should force an out-of-line copy of the C99 inline, right? And GCC always-inline doesn't change that? Btw, the same should happen with -O2 -flto but __attribute__((optimize(0))) on main(). It might be worth amending the always-inline documentation as well.