AUTOSAR C++14 Rule A7-5-2
Functions shall not call themselves, either directly or indirectly
説明
ルール定義
Functions shall not call themselves, either directly or indirectly.
根拠
関数に対してローカルな変数は呼び出しスタック内に格納されます。関数がそれ自身を直接的または間接的に複数回呼び出す場合、使用可能なスタック領域を超過し、深刻な不具合を発生させる可能性があります。再帰が厳密に制御されていない限り、必要な最大スタック領域を決めるのは困難です。
Polyspace 実装
チェッカーは、それ自体を直接的または間接的に呼び出すそれぞれの関数について報告します。1 つの再帰サイクルに複数の関数が関与している場合でも、それぞれの関数が個別に報告されます。
再帰サイクルの総数は、コード複雑度メトリクス [再帰の数] を使用して計算できます。チェッカーと違って、メトリクスでは、オブジェクトの作成中にコンパイラが生成したコンストラクターなどに対する暗黙的な呼び出しも考慮されます。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 宣言 |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入