メインコンテンツ

最小スタック使用量のプログラミング

入れ子にされたスコープを考慮した解析されたプログラムの最大スタック使用量

説明

このメトリクスは Code Prover 解析のみで報告されます。

このメトリクスは、入れ子にされたスコープを考慮した、プログラムの最大スタック使用量を示します。このメトリクスでは、スタック使用量の下限が指定されます。これは、最大スタック使用量のプログラミング とは異なり、このメトリクスは関数内で再利用できる可能性のあるスタック領域を考慮し、単純に関数のすべてのローカル変数のサイズを追加するわけではないためです。

メトリクスでは、スタック使用量が最も大きい関数の最小スタック使用量を示します。完全なアプリケーションを提供する場合、通常、main 関数が呼び出し関数の最上位にあるため、スタック使用量が最も大きい関数は main 関数になります。マルチタスクまたはマルチスレッドのアプリケーションでは、プログラムの最小スタック使用量は、スタック使用量が最も大きいタスクまたはスレッドの最小スタック使用量になります。関数の最小スタック使用量については、メトリクス最小スタック使用量を参照してください。

入れ子にされたスコープを考慮すると、入れ子にされたスコープで定義された変数のスタック領域を再利用するコンパイラに役立ちます。たとえば、このコードでは、var_1 の領域は var_2 に再利用されます。

type func (type param_1, ...) {

  {
    /* Scope 1 */
    type var_1, ...;
  }
  {
    /* Scope 2 */
    type var_2, ...;
  }
}

メトリクス情報

グループ: プロジェクト
頭字語: PROG_MIN_STACK
HIS メトリクス:いいえ

バージョン履歴

R2017b で導入

すべて展開する