メインコンテンツ

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

ターゲット プロセッサ タイプ (-target)

事前定義されたターゲット プロセッサの選択によるデータ型のサイズとエンディアンの指定

説明

コードを展開するプロセッサを指定します。

ターゲット プロセッサにより、ターゲット マシンの基本データ型のサイズとエンディアンが決定されます。リストに無いプロセッサ タイプ向けのコードは、そのデータ プロパティが共通であれば、他のプロセッサ タイプを使用して解析できます。

オプションの設定

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

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

    型のサイズを確認するには、[ターゲット プロセッサ タイプ] ドロップダウン リストの右にある [編集] ボタンをクリックします。一部のコンパイラについては、そのコンパイラで許容されるプロセッサのみが表示されます。このようなコンパイラの場合、ユーザー インターフェイスにデータ型のサイズは表示されません。データ型のサイズについては、設定を参照してください。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ) — Polyspace Platform ユーザー インターフェイスではこのオプションの名前は [プロセッサ] であり、サポートされるターゲットは別のリストで表示されます。プロセッサを参照してください。オプション [ターゲット プロセッサ タイプ] でサポートされるターゲット (設定にリストされます) は、Polyspace Platform ユーザー インターフェイスで直接選択することはできません。psprj Polyspace プロジェクト ファイルを Polyspace Platform ユーザー インターフェイスで開く場合、プロジェクトで使用されるターゲットはカスタム ターゲット プロセッサに変換されます。このターゲットは [プロセッサ] オプションにリストされます。

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

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

プロセッサのデータ型のサイズやその他のプロパティに合わせて Polyspace 実行時チェックの一部が調整されるように、ターゲット プロセッサを指定します。

たとえば、i386 などの 32 ビットのプロセッサでは、x86_64 などの 64 ビットプロセッサに比べて小さな値で変数がオーバーフローする可能性があります。Polyspace 解析に x86_64 を選択しても、コードを i386 プロセッサに展開する場合、Polyspace の結果が必ずしも適切になるとは限りません。

ターゲット プロセッサを選択後、char の既定の符号が符号付きか符号なしかを指定できます。どちらの符号属性を指定するか判断するには、通常使用するコンパイラ設定を使用して、次のコードをコンパイルします。

#include <limits.h>
int array[(char)UCHAR_MAX]; /* If char is signed, the array size is -1
このコードをコンパイルすると、char の既定の符号は符号なしになります。たとえば、GCC コンパイラでは、-fsigned-char フラグを指定してコードをコンパイルします。-funsigned-char フラグを指定してコンパイルすると失敗します。

設定

既定値: i386

次の表は、generic、GCC、Clang、Visual Studio® の各コンパイラと組み合わせて使用する場合のさまざまなターゲット プロセッサの各基本データ型の想定サイズを示しています。一部のターゲットでは、[ターゲット プロセッサ タイプ] ドロップダウン リストの右にある [編集] ボタンをクリックすることで、既定のサイズを変更できます。このようなターゲットのオプション値は表中で大かっこで囲んで示しています。

ターゲットcharshortintlonglong longfloatdoublelong doubleaポインターchar の既定の符号endianアライメント
i38681632326432649632符号付きリトル32
sparc816323264326412832符号付きビッグ64
m68kb81632326432649632符号付きビッグ64
powerpc816323264326412832符号なしビッグ64
c-16781616323232646416符号付きリトル64
tms320c3x323232326432326432符号付きリトル32
sharc21x6132323232643232 [64]32 [64]32符号付きリトル32
necv85081632323232326432符号付きリトル32
hc08c81616 [32]32323232 [64]32 [64]16d符号なしビッグ32
hc1281616 [32]32323232 [64]32 [64]326符号付きビッグ32
mpc5xx8163232643232 [64]32 [64]32符号付きビッグ32
c188161632 [24]e3232323216 [24]符号付きリトル8
x86_648163264 [32]f64326412864符号付きリトル128
arm81632326432646432符号付きビッグ64
arm64816326464326412864符号付きビッグ128
riscv816323264326412832符号付きビッグ128
riscv64816326464326412864符号付きビッグ128
mcpu...(詳細)g8 [16]8 [16]16 [32]3232 [64]3232 [64]32 [64]16 [32]符号付きリトル32

a For targets where the size of long double is greater than 64 bits, the size used for computations is not always the same as the size listed in this table. The exceptions are:

  • For targets i386, x86_64 and m68k, 80 bits are used for computations, following the practice in common compilers.

  • For the target tms320c3x, 40 bits are used for computation, following the TMS320C3x specifications.

  • If you use a Visual compiler, the size of long double used for computations is the same as size of double, following the specification of Visual C++® compilers.

b The M68k family (68000, 68020, and so on) includes the “ColdFire” processor

c Non-ANSI C specified keywords and compiler implementation-dependent pragmas and interrupt facilities are not taken into account by this support

d  All kinds of pointers (near or far pointer) have 2 bytes (hc08) or 4 bytes (hc12) of width physically.

e The c18 target supports the type short long as 24 bits in size.

f Use option -long-is-32bits to support Microsoft® C/C++ Win64 target.

g  mcpu is a reconfigurable Micro Controller/Processor Unit target. You can use this type to configure one or more generic targets. For more information, see Generic target options.

ネイティブにサポートされるコンパイラに加えて、Polyspace ではさまざまな専用コンパイラをサポートしています。以下の専用コンパイラに対してサポートされるターゲット プロセッサを選択できます。

ヒント

  • 使用するプロセッサが一覧にない場合は、特性が同じ類似のプロセッサを使用するか、mcpu 汎用ターゲット プロセッサを作成します。汎用ターゲット オプションを参照してください。

  • オプション -custom-target を使用して基本的な型のサイズなどを明示的に記述することによって、カスタム ターゲットを作成することもできます。

  • 構成で -custom-target-target の両方を使用してターゲットが指定されている場合、解析では -custom-target で指定されたターゲットが使用されます。

コマンド ライン情報

パラメーター: -target
値: i386 | sparc | m68k | powerpc | c-167 | tms320c3x | sharc21x61 | necv850 | hc08 | hc12 | mpc5xx | c18 | x86_64 | mcpu
既定値: i386
例 (Bug Finder): polyspace-bug-finder -target m68k
例 (Code Prover): polyspace-code-prover -target m68k
例 (Bug Finder Server): polyspace-bug-finder-server -target m68k
例 (Code Prover Server): polyspace-code-prover-server -target m68k

一部のターゲットの既定値は、特定のコマンド ライン オプションを使用してオーバーライドできます。汎用ターゲット オプションの「コマンド ライン オプション」の節を参照してください。