AUTOSAR 仕様に非準拠
説明
この欠陥は、RTE API 関数が、AUTOSAR 規格仕様に違反する引数を指定して使用されている場合に発生します。
たとえば、Rte_Write_* または Rte_Byps_Write_* 関数呼び出しに対するチェックでは、呼び出しにおけるデータへのポインター引数が次の条件を満たすかどうかを判別します。
NULL 値である。
メモリ バッファーを指している。
初期化済みメモリ バッファーを指している。
enum 値を含むバッファーの場合、値が enum 値の範囲内である。
RTE API 仕様の詳細については、AUTOSAR のドキュメンテーション (RTE ソフトウェアの仕様) を参照してください。
このチェックを有効にするには、オプション [使用するライブラリ] (-library) に値 autosar を使用します。
Code Prover では、同じチェッカーのより徹底的なバージョンを使用できます。関数 Rte_ の呼び出しで AUTOSAR 規格違反の有無をチェックするときに、Code Prover チェッカーは、関数呼び出しにつながる "すべて" の実行パスを考慮します (検証の前提条件による)。
リスク
RTE 関数の使用法がランタイム エラーにつながる可能性があります。
修正方法
修正方法は欠陥の根本原因によって異なります。このチェックを診断するには、[結果の詳細] ペインのメッセージを確認します。メッセージには、RTE API 関数に実行されたすべてのチェックが、チェックにパスしたかどうかに関する情報と共に表示されます。例として、次のメッセージを考えます。

3 つのチェックの結果が表示され、3 つすべてのチェックが失敗する可能性があります。関数の最初の引数が NULL ポインターである可能性、割り当てられない可能性、および初期化済みメモリを指していない可能性があります。
問題の根本原因をさらに調査します。
例
結果情報
| グループ: プログラミング |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: autosar_lib_non_compliance |
| 影響度: High |
バージョン履歴
R2021a で導入