このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C:2023 Dir 4.11
The validity of values passed to library functions shall be checked
R2024a 以降
説明
命令の定義
The validity of values passed to library functions shall be checked 1 .
根拠
標準 C 関数の多くは渡されるパラメーターの有効性をチェックしません。コンパイラがチェックを実行するとしても、チェックが適切である保証はありません。たとえば、負の数値は sqrt
または log
に渡すべきではありません。
Polyspace 実装
Polyspace® は、以下のいずれかの問題が検出される場合に、この命令に対する違反を報告します。
標準ライブラリ整数ルーチンの無効な使用
。Polyspace は、isalnum
、isalpha
、またはtolower
などの一部のライブラリ整数ルーチンの無効な使用について、この命令に対する違反を報告します。標準ライブラリ メモリ ルーチンの無効な使用
。Polyspace は、memchr
、memcmp
、またはmemset
などの一部のライブラリ メモリ ルーチンの無効な使用について、この命令に対する違反を報告します。標準ライブラリ文字列ルーチンの無効な使用
。Polyspace は、strncat
、strncpy
、またはstrcpy
などの一部のライブラリ文字列ルーチンの無効な使用について、この命令に対する違反を報告します。範囲
[-π,π]
の外部の入力を使用したmath.h
からの三角関数の呼び出し。
ヒント
同じライブラリ関数に関連するすべての結果を一括で正当化するには、[結果のリスト] ペインの [詳細] 列を使用します。列ヘッダーをクリックして、同じエントリをもつすべての結果がグループ化されるようにします。Shift
キーを押したままで、最初の結果を選択した後、最後の結果を選択します。結果の 1 つにステータスを割り当てます。[詳細] 列が表示されていない場合は、他の列ヘッダーを右クリックして、この列を有効にします。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
チェック情報
グループ: Code design |
カテゴリ: 必要 |
AGC カテゴリ: 必要 |
バージョン履歴
R2024a で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.