メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

使用するライブラリ (-library)

プログラムで使用するライブラリの指定

R2021a 以降

説明

プログラムで使用するライブラリを指定します。

解析では、汎用的なスタブの代わりに、これらライブラリの関数に対するスマート スタブが使用され、関数実装のチェックは試みられません。このオプションを使用することで、精度を下げずに解析を高速化でき、関数の呼び出しに際してライブラリ固有のチェックがトリガーされます。

オプションの設定

以下のいずれかの方法を使用してオプションを設定します。

  • Polyspace® ユーザー インターフェイス (デスクトップ製品のみ) — プロジェクト構成で [入力およびスタブ] ノードを選択してから、このオプションの値を選択します。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ) — プロジェクト構成の [静的解析] タブで [入力およびスタブ] ノードを選択してから、このオプションの値を選択します。

  • コマンド ラインとオプション ファイル — オプション -library を使用します。コマンド ライン情報を参照してください。

このオプションを使用する理由

解析でライブラリを認識させて高速化するには、このオプションを使用します。このオプションを使用しないと、解析ではライブラリ実装のチェックが試行されます。実装が使用できない場合はライブラリの関数に対して汎用のスタブを使用します。関数本体をチェックすると解析時間が大幅に長くなる可能性がありますが、一方、汎用のスタブを使用すると精度の損失につながる可能性があります。

このオプションを使用すると、関数の引数に対してライブラリ固有のチェックもトリガーされます。たとえば、オプションの値として autosar を選択すると、Bug Finder 解析または Code Prover 解析で、AUTOSAR RTE API の関数への引数が AUTOSAR 規格に準拠しているかどうかがチェックされます。

設定

既定値: none

none

解析では C 標準ライブラリの関数に対してのみスマート スタブが使用されます。

autosar

解析では、AUTOSAR RTE API 関数に対して (関数実装が使用可能である場合でも) スマート スタブが使用されます。

このオプションを使用すると、関数の引数に対して AUTOSAR 固有のチェックもトリガーされます。詳細は、該当するチェッカーを参照してください。

  • Bug Finder:AUTOSAR 仕様に非準拠

    このオプションを設定するだけでなく、上記のチェッカーも明示的に有効にしなければなりません (または、すべてのチェッカーを有効にします)。

  • Code Prover:AUTOSAR 仕様に非準拠

    このチェッカーは、このオプションを設定するだけで有効になります。

stdlibcxx

解析では、C++ 標準ライブラリ コンテナーに対して (関数実装が使用可能である場合でも) スマート スタブが使用されます。

メソッドがスタブ化されるコンテナーには、std::mapstd::unordered_map, std::dequestd::vectorstd::setstd::unordered_set、および std::list が含まれます。このオプションを使用しており、コードに C++ コンテナー メソッドが含まれている場合は、解析ログに次のメッセージが記録されます。

n methods stubbed for better performance
ここで、n はスタブ化されたメソッドの数です。

C 標準ライブラリの関数とは異なり、C++ コンテナー メソッドのスタブは、定義域エラーやその他のエラー状態のチェックに使用されません。メソッドは、実装の解析から生じる不要なパフォーマンス コストを回避するためにスタブ化されます。その結果、間違った引数を指定して C++ コンテナー メソッドを呼び出しても、不正な呼び出しに言及するエラーは表示されません。ただし、場合によっては、不正な呼び出しに続いて間接的に発生した他のエラーが表示されることがあります。たとえば、空のスタックに対して std::stack::top() メソッドを呼び出すと、スタック自体は初期化されていても、未初期化変数というエラーが表示されます。

このオプションは Code Prover 解析のみに影響します。Bug Finder 解析では、コンパイル直後に C++ コンテナー メソッドの実装が破棄されるため、スマート スタブ化の必要がありません。

pstunit

解析では、Polyspace Test™ xUnit API からのテスト固有のマクロとクラスにスマート スタブを使用します。Polyspace Platform ユーザー インターフェイスでテストに対して静的解析を実行する場合、このオプションが自動的に追加されます。詳細は、Check for Bugs and Run-Time Errors in C/C++ Tests and Functions Under Test (Polyspace Test)を参照してください。

adaptive_autosar

解析で、現在のプロジェクト内のすべてのソース ファイルがチェックされ、Adaptive AUTOSAR 名前空間 ara 内の関数に対してスマート スタブが使用されます。

この値とオプション -classification を同時に使用すると、エラーが発生します。

コマンド ライン情報

パラメーター: -library
既定値なし
値: autosar | stdlibcxx | pstunit | adaptive_autosar | 値のコンマ区切りリスト
例 (Bug Finder): polyspace-bug-finder -sources file_name -library autosar -checkers autosar_lib_non_compliance
例 (Code Prover): polyspace-code-prover -sources file_name -library autosar
例 (Bug Finder Server): polyspace-bug-finder-server -sources file_name -library autosar -checkers autosar_lib_non_compliance
例 (Code Prover Server): polyspace-code-prover-server -sources file_name -library autosar

バージョン履歴

R2021a で導入

すべて展開する