From: Sandra Loosemore Date: Tue, 15 Apr 2025 03:49:06 +0000 (+0000) Subject: Doc: always_inline attribute vs multiple TUs and LTO [PR113203] X-Git-Tag: basepoints/gcc-16~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fc89b1face0d207710eaa3d8f5af3adcffd5c5c9;p=thirdparty%2Fgcc.git Doc: always_inline attribute vs multiple TUs and LTO [PR113203] gcc/ChangeLog PR ipa/113203 * doc/extend.texi (Common Function Attributes): Explain how to use always_inline in programs that have multiple translation units, and that LTO inlining additionally needs optimization enabled. --- diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 3a8e5706515..5bc2785f802 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -1933,6 +1933,13 @@ Note that if such a function is called indirectly the compiler may or may not inline it depending on optimization level and a failure to inline an indirect call may or may not be diagnosed. +If you need to use the inlined function in multiple translation units, +you should put the @code{always_inline} attribute on a function +definition in a header file that is included in all translation units +where the function is used. Link-time optimization can inline +functions across translation units, but only if an optimization level +that normally enables inlining is additionally specified. + @cindex @code{artificial} function attribute @item artificial This attribute is useful for small inline wrappers that if possible