ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

  0    : 関数間解析を実施しない(デフォルト)

  15 : 展開可能な最大行数後述する展開可能な文(後述statement)を表し、この範囲内で展開可能な場合は関数間解析を実施するの数を表し、この範囲内で展開可能な場合は関数間解析を実施する

注意

関数間解析の深さのみの設定の場合、同一の翻訳単位内の関数に限りデータの追跡を行うことができます。
異なる翻訳単位の関数についてデータの追跡を行うには、関数間解析を行う設定に加えて、『翻訳単位間データフロー解析(ITU)』を実施する設定が必要です。

...

情報
iconfalse

メッセージ2834 P: ゼロ除算が発生する可能性があります。


展開可能な最大行数展開可能な文(statement)の数

関数間解析の深さの設定値 15 は、呼び出す側の関数に展開可能な呼び出される側の関数の最大行数をは、呼び出す側の関数に展開可能な呼び出される側の関数の文の数を 2 x 10nで表します。
つまり、設定値が 1 の場合は最大で 20 行、設定値が、設定値が 5 の場合は最大で 20行展開することができます。文 を展開することができます。

※展開される関数は、最適化されたり実引数と仮引数の変換などが行われるため、実際のコード行数と完全に一致するわけではありません。※展開される関数は、最適化されたり実引数と仮引数の変換などが行われるため、実コードの文の数と完全に一致するわけではありません。

この設定で展開しきれない場合は、関数間解析は実施されません。

例えば、関数間解析の深さの設定値が 1 の場合で、呼び出される側の関数が 100 行の場合、の場合、
呼び出される側の関数は展開されず、その部分の関数間解析は実施されません。
呼び出される側の関数が 20 行分展開されて解析されるわけではありません。文まで展開されて解析されるわけではありません。

・関数間解析の深さの設定値が 5 の場合で、呼び出される側の関数を展開できない場合はメッセージ2756が出力されます。

...