Target processor type (-target
)
Specify size of data types and endianness by selecting a predefined target processor
Description
Specify the processor on which you deploy your code.
The target processor determines the sizes of fundamental data types and the endianness of the target machine. You can analyze code intended for an unlisted processor type by using one of the other processor types, if they share common data properties.
Set Option
User interface (desktop products only): In your project configuration, the option is on the Target & Compiler node. To see the sizes of types, click the Edit button to the right of the Target processor type drop-down list.
User interface
(Polyspace Platform, desktop products only):
In your project configuration, the option is on the Build tab
on the Target & Compiler node. This option is renamed to
Processor
in the Polyspace Platform user interface.
See Processor
.
For some compilers, in the user interface, you see only the processors allowed for that compiler. For these compilers, you also cannot see the data type sizes in the user interface. See the links in the table below for the data type sizes.
Command line and options file: Use the option
-target
. See Command-Line Information.
Why Use This Option
You specify a target processor so that some of the Polyspace® run-time checks are tailored to the data type sizes and other properties of that processor.
For instance, a variable can overflow for smaller values on a 32-bit processor such as i386 compared to a 64-bit processor such as x86_64. If you select x86_64 for your Polyspace analysis, but deploy your code to the i386 processor, your Polyspace results are not always applicable.
Once you select a target processor, you can specify if the default sign of char is signed or unsigned. To determine which signedness to specify, compile this code using the compiler settings that you typically use:
#include <limits.h> int array[(char)UCHAR_MAX]; /* If char is signed, the array size is -1
-fsigned-char
flag and fails
to compile with the -funsigned-char
flag.Settings
Default: i386
This table shows the size of each fundamental data type that Polyspace considers. For some targets, you can modify the default size by clicking the Edit button to the right of the Target processor type drop-down list. The optional values for those targets are shown in [brackets] in the table.
Target | char | short | int | long | long long | float | double | long doublea | ptr | Default sign of char | endian | Alignment |
---|---|---|---|---|---|---|---|---|---|---|---|---|
i386 | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 96 | 32 | signed | Little | 32 |
sparc | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 128 | 32 | signed | Big | 64 |
m68k b | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 96 | 32 | signed | Big | 64 |
powerpc | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 128 | 32 | unsigned | Big | 64 |
c-167 | 8 | 16 | 16 | 32 | 32 | 32 | 64 | 64 | 16 | signed | Little | 64 |
tms320c3x | 32 | 32 | 32 | 32 | 64 | 32 | 32 | 64 | 32 | signed | Little | 32 |
sharc21x61 | 32 | 32 | 32 | 32 | 64 | 32 | 32 [64] | 32 [64] | 32 | signed | Little | 32 |
necv850 | 8 | 16 | 32 | 32 | 32 | 32 | 32 | 64 | 32 | signed | Little | 32 |
hc08 c | 8 | 16 | 16 [32] | 32 | 32 | 32 | 32 [64] | 32 [64] | 16d | unsigned | Big | 32 |
hc12 | 8 | 16 | 16 [32] | 32 | 32 | 32 | 32 [64] | 32 [64] | 326 | signed | Big | 32 |
mpc5xx | 8 | 16 | 32 | 32 | 64 | 32 | 32 [64] | 32 [64] | 32 | signed | Big | 32 |
c18 | 8 | 16 | 16 | 32 [24]e | 32 | 32 | 32 | 32 | 16 [24] | signed | Little | 8 |
x86_64 | 8 | 16 | 32 | 64 [32]f | 64 | 32 | 64 | 128 | 64 | signed | Little | 128 |
mcpu... (Advanced) g | 8 [16] | 8 [16] | 16 [32] | 32 | 32 [64] | 32 | 32 [64] | 32 [64] | 16 [32] | signed | Little | 32 |
Targets for ARM® v5 compiler | See ARM v5
Compiler (-compiler armcc) . | |||||||||||
Targets for ARM v6 compiler | See ARM v6
Compiler (-compiler armclang) . | |||||||||||
Targets for NXP CodeWarrior® compiler | See NXP
CodeWarrior Compiler (-compiler codewarrior) . | |||||||||||
Targets for Cosmic compiler | See Cosmic
Compiler (-compiler cosmic) . | |||||||||||
Targets for Diab compiler | See Diab Compiler (-compiler
diab) . | |||||||||||
Targets for Green Hills® compiler | See Green Hills
Compiler (-compiler greenhills) . | |||||||||||
Targets for IAR Embedded Workbench compiler | See IAR Embedded
Workbench Compiler (-compiler iar-ew) . | |||||||||||
Targets for MPLAB XC8 C compiler | See MPLAB XC8 C
Compiler (-compiler microchip) | |||||||||||
Targets for Renesas® compiler | See Renesas
Compiler (-compiler renesas) . | |||||||||||
Targets for TASKING compiler | See TASKING Compiler (-compiler
tasking) . | |||||||||||
Targets for Texas Instruments® compiler | See Texas
Instruments Compiler (-compiler ti) . | |||||||||||
a For targets where the size of
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 f Use option g
|
Tips
If your processor is not listed, use a similar processor that shares the same characteristics, or create an
mcpu
generic target processor. SeeGeneric target options
.You can also create a custom target by explicitly stating sizes of fundamental types and so on with the option
-custom-target
.If your configuration uses both
-custom-target
and-target
to specify targets, the analysis uses the target that you specify with-custom-target
.
Command-Line Information
Parameter: -target |
Value:
i386 | sparc | m68k | powerpc | c-167 | tms320c3x | sharc21x61 | necv850 |
hc08 | hc12 | mpc5xx | c18 | x86_64 | mcpu |
Default: i386 |
Example (Bug Finder): polyspace-bug-finder
-target m68k |
Example (Code Prover):
polyspace-code-prover -target m68k |
Example (Bug Finder Server): polyspace-bug-finder-server -target m68k |
Example (Code Prover
Server):
polyspace-code-prover-server -target
m68k |
You can override the default values for some targets by using specific command-line options.
See the section Command-Line Options in Generic
target options
.