The following tries to clarify the always_inline docs, in particular that it applies to non-O0 as well and what the failure mode is (derived from how our implementation behaves).
Does this look ok? Thanks, Richard. 2014-07-15 Richard Biener <rguent...@suse.de> PR other/61782 * doc/extend.texi (always_inline): Clarify. Index: gcc/doc/extend.texi =================================================================== --- gcc/doc/extend.texi (revision 212548) +++ gcc/doc/extend.texi (working copy) @@ -2307,8 +2307,12 @@ to 8. @item always_inline @cindex @code{always_inline} function attribute Generally, functions are not inlined unless optimization is specified. -For functions declared inline, this attribute inlines the function even -if no optimization level is specified. +For functions declared inline, this attribute inlines the function +independent of any restrictions that otherwise apply to inlining. +Failure to inline such a function is diagnosed as an error. +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. @item gnu_inline @cindex @code{gnu_inline} function attribute