]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Doc: always_inline attribute vs multiple TUs and LTO [PR113203]
authorSandra Loosemore <sloosemore@baylibre.com>
Tue, 15 Apr 2025 03:49:06 +0000 (03:49 +0000)
committerSandra Loosemore <sloosemore@baylibre.com>
Tue, 15 Apr 2025 03:58:31 +0000 (03:58 +0000)
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.

gcc/doc/extend.texi

index 3a8e5706515069b4d88f8aae6a0511237fd317f3..5bc2785f8025f17360e3558ac2aa667e64ee6533 100644 (file)
@@ -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