https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111643
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed| |2023-10-04 --- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> --- Something like #pragma GCC inline foo (); or [[gnu::inline]] foo (); was mentioned a few times but nobody bothered to implement it (setting a flag on the CALL_EXPR). Will post/push diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index b4770f1a149..645c76f23e9 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -3109,7 +3109,9 @@ file descriptor opened with @code{O_RDONLY}. @cindex @code{flatten} function attribute @item flatten Generally, inlining into a function is limited. For a function marked with -this attribute, every call inside this function is inlined, if possible. +this attribute, every call inside this function is inlined including the +calls such inlining introduces to the function (but not recursive calls +to the function itself), if possible. Functions declared with attribute @code{noinline} and similar are not inlined. Whether the function itself is considered for inlining depends on its size and the current inlining parameters.