このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR C++14 Rule A0-4-4
説明
ルール定義
Range, domain and pole errors shall be checked when using math functions.
根拠
数学関数を使用する前に、入力引数に潜在的な定義域、範囲、および極エラーがないかどうかをチェックします。
このチェッカーは、関数の引数が許容定義域の範囲外にある場合は定義域エラーを、有限の引数が無限大の結果になる場合は極エラーを、戻り値の制限によって関数の結果を表せない場合は範囲エラーを検索します。
定義域、極、または範囲エラーは、予期しない動作または未定義の動作につながります。
Polyspace 実装
定義域、極、または範囲エラーの結果になる数学関数を呼び出すと、Polyspace® がこの欠陥を報告します。
既定では、Bug Finder 解析は無限大と NaNs
を認識しません。結果が無限大および NaNs
になる演算には、欠陥としてフラグが設定される可能性があります。コードで無限大および NaN
の値を処理するには、オプション [非有限の浮動小数点を検討] (-allow-non-finite-floats)
を使用します。
チェッカーの拡張
カスタム ライブラリからの特定の値と関数の無効な使用を原因とする欠陥をチェックするには、このチェッカーを拡張してください。次に例を示します。
数学関数からなるカスタム ライブラリを使用することもあります。カスタム ライブラリ関数の領域と範囲が、標準ライブラリに含まれる別の関数の領域と範囲と同じであれば、そのカスタム ライブラリ関数をチェックするように、このチェッカーを拡張できます。標準ライブラリ関数用の Bug Finder チェッカーのカスタム ライブラリへの拡張を参照してください。
入力値が不明であり、入力のサブセットのみがエラーの原因として考えられる場合、既定の Bug Finder 解析ではこの欠陥が報告されない可能性があります。特定のシステム入力値を原因とする欠陥の有無をチェックするには、より厳密な Bug Finder 解析を実行してください。特定のシステム入力値から欠陥を見つけるための Bug Finder チェッカーの拡張を参照してください。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
グループ: 言語に依存しない問題 |
カテゴリ: Required、Partially automated |
バージョン履歴
R2022a で導入