関数属性 noinline は、適用される関数が、インラインまたは非インラインのいずれで宣言されているかにかかわらず、インラインされないようにします。 この属性は、インライン・コンパイラー・オプション、 inline キーワード、および always_inline 関数属性よりも優先されます。この言語フィーチャーは、C89、C99、および Standard C++ および C++98 に対する直交拡張で、GNU C および C++ で開発されたプログラムの移植を容易にするためにインプリメントされています。
構文を以下の図で示します。
>>-__attribute__--((--+-noinline-----+--))--------------------->< '-__noinline__-'
この属性は、インラインされないようにすること以外、インライン関数のセマンティクスは除去しません。
関連参照