Diab コンパイラ (-compiler diab
)
Wind River Diab コンパイラの指定
説明
Wind River® Diab コンパイラを使用してコードをコンパイルする場合は、[コンパイラ] (-compiler)
に [diab]
を指定します。コンパイラを指定することによって、規格に含まれていなくても言語拡張に含まれている構文によるコンパイル エラーを回避できます。
次に、ターゲット プロセッサ タイプを指定します。[コンパイラ] に [diab]
を選択すると、Polyspace® デスクトップ製品のユーザー インターフェイスには、Diab コンパイラで許容されるプロセッサのみが表示されます。選択するターゲット プロセッサに応じて、基本的なデータ型のサイズ、ターゲット マシンのエンディアンおよび特定のキーワード定義が決まります。
[diab]
コンパイラを指定する場合は、コンパイラ ヘッダー ファイルへのパスを指定しなければなりません。Polyspace 解析への標準ライブラリ ヘッダーの指定を参照してください。
メモ
たとえば、Diab コンパイラの version 7.x
を使用する場合、コンパイラに clang15.x
を選択します。このバージョンの Diab コンパイラは、arm
および arm64
をターゲットとしてサポートしています。
設定
ターゲットでは、基本的な型に対して以下のビット サイズが既定で使用されます。Polyspace デスクトップ製品のユーザー インターフェイスには、これらのサイズが表示されません。
ターゲット | char | short | int | long | long long | float | double | long double | ptr | char の既定の符号 | エンディアン | アライメント | wchar_t の定義 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
i386 | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 96 | 32 | 符号付き | リトル | 32 | 符号なし short 型 |
powerpc | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号なし | ビッグ | 64 | N/A |
powerpc64 | 8 | 16 | 32 | 64 | 64 | 32 | 64 | 64 | 64 | 符号なし | ビッグ | 64 | N/A |
arm | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号なし | ビッグ | 64 | 符号なし short 型 |
coldfire | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号付き | ビッグ | 64 | N/A |
mips | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号付き | ビッグ | 64 | N/A |
mcore | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号なし | ビッグ | 64 | N/A |
rh850 | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号付き | リトル | 32 | 符号なし short 型 |
superh | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号付き | ビッグ | 64 | N/A |
tricore | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | 符号付き | リトル | 64 | 符号なし short 型 |
68k 、sparc | サポートなし。 |
加えて、wchar_t
は unsigned short
と解釈され、size_t
は unsigned int
と解釈されます。
コンパイラの仕様では、多くのコンパイラ固有のマクロの値も決定されます。Polyspace で特定のマクロがどのように定義されるかを確認するには、オプション -dump-preprocessing-info
を使用します。
マクロ定義をオーバーライドするには、オプション
[プリプロセッサ定義] (-D)
を使用します。マクロの定義を解除するには、オプション
[無効なプリプロセッサ定義] (-U)
を使用します。
ヒント
Polyspace では、次の Diab コンパイラの機能はサポートされていません。
プリプロセッサ命令
#assert
および#unassert
。コードはコンパイルされますが、本ソフトウェアではこれらの命令が意味的に解釈されません。実行文字セットに含まれる同じ文字定数と同じ値を持つ、
#if
命令に含まれる単一文字定数。コードはコンパイルされますが、Polyspace はその文字定数が同じ値を持つと見なしません。2 つの引数を使用した拡張
sizeof()
構文。たとえば、sizeof(char, 2)
です。この機能を使用すると、Polyspace でコードがコンパイルされません。ステートメントの式。たとえば、
({int y; y=foo(); y;})
です。この機能を使用すると、Polyspace でコードがコンパイルされません。defined
プリプロセッサ演算子での正規表現の使用。たとえば、#if defined ("BSP_HW*")
です。この機能を使用すると、Polyspace でコードがコンパイルされません。
Polyspace 解析中にエラーが発生した場合は、Diab コンパイラに関連する Polyspace コンパイル エラーの修正を参照してください。
IDE で Polyspace as You Code の拡張機能を使用する場合は、このオプションを解析オプション ファイルに入力します。オプション ファイルを参照してください。
コマンド ライン情報
パラメーター: -compiler diab -target |
値: i386 | powerpc | arm | coldfire | mips | mcore | rh850 | superh | tricore |
既定値: powerpc |
例 (Bug Finder): polyspace-bug-finder -compiler diab -target tricore |
例 (Code Prover): polyspace-code-prover -compiler diab -target tricore |
例 (Bug Finder Server): polyspace-bug-finder-server -compiler diab -target tricore |
例 (Code Prover Server): polyspace-code-prover-server -compiler diab -target tricore |
バージョン履歴
R2016b で導入