デフォルトでは、標準ライブラリ関数と数値演算ライブラリ関数のいくつかは、関数の呼び出し時点で、コンパイラによって自動的に展開します。通常、この処理によって計算速度が速くなります。
しかし、インライン化されたライブラリ関数では、インライン展開時に errno 変数は設定されません。したがって、errno 変数を設定するかしないかによって動作が異なるコードに対しては、-nolib_inline オプションを使用しなければなりません。また、コンパイラから提供されるライブラリ関数と同じ名前を持つ関数はライブラリ関数と見なすため、元々の呼び出し命令は、インライン化したものと置き換わります。
そのため、プログラムに標準のいずれかのライブラリ・ルーチンと同じ名前の関数が定義されている場合は、-nolib_inline オプションを使用して、ユーザが定義した関数が必ず使用されるように指定しなければなりません。
-nolib_inline オプションは、すべての組込み関数のインライン化を無効にします。
注
ライブラリ関数の自動インライン展開は、プロシージャ間の最適化処理中にコンパイラが行うインライン展開とは関連がありません。例えば、次のコマンドは、数値演算ライブラリ関数を展開せずに、プログラム sum.f をコンパイルします。
ifort -ip -nolib_inline sum.f