AUTOSAR C++14 Rule M7-5-2
The address of an object with automatic storage shall not be assigned to an object that may persist after the object has ceased to exist.
説明
ルール定義
The address of an object with automatic storage shall not be assigned to an object that may persist after the object has ceased to exist.
根拠
オブジェクトが別のオブジェクトを指していて、後者のオブジェクトが存在しなくなった "後も" 指し続けている場合、前者のオブジェクトのデリファレンスは未定義の動作につながります。
Polyspace 実装
自動ストレージ オブジェクトのアドレスを、それよりも有効期間が長いオブジェクトに代入すると、Polyspace® はこのルールの違反を報告します。有効期間がより長いオブジェクトには、次のものがあります。
グローバル ポインター変数
外側のスコープで宣言されたローカル オブジェクト
関数がローカル変数のアドレスを返す場合、チェッカーはこのルールの違反を報告しません。この状況は AUTOSAR C++14 Rule M7-5-1 に含まれています。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 宣言 |
| カテゴリ: Required、Non-automated |
バージョン履歴
R2020b で導入