https://gcc.gnu.org/g:fc89b1face0d207710eaa3d8f5af3adcffd5c5c9

commit r15-9475-gfc89b1face0d207710eaa3d8f5af3adcffd5c5c9
Author: Sandra Loosemore <sloosem...@baylibre.com>
Date:   Tue Apr 15 03:49:06 2025 +0000

    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:
---
 gcc/doc/extend.texi | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi
index 3a8e57065150..5bc2785f8025 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

Reply via email to