Green Hills Compiler (-compiler
greenhills
)
Specify Green Hills compiler
Description
Specify greenhills
for Compiler
(-compiler)
if you compile your code using a Green Hills® compiler. By specifying your compiler, you can avoid compilation errors
from syntax that is not part of the Standard but comes from language extensions.
Then, specify your target processor type. If you select
greenhills
for Compiler, in the user
interface of the Polyspace® desktop products, you see only the processors allowed for a Green Hills compiler. Your choice of target processor determines the size of
fundamental data types, the endianness of the target machine and certain keyword
definitions.
If you specify the greenhills
compiler, you must specify
the path to your compiler header files. See Provide Standard Library Headers for Polyspace Analysis.
Settings
The targets use the following default sizes in bits for the fundamental types. You do not see these sizes in the user interface of the Polyspace desktop products.
Target | char | short | int | long | long long | float | double | long double | ptr | Default sign of char | Endianness | Alignment | Definition of size_t | Definition of wchar_t |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
powerpc | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | unsigned | Big | 64 | unsigned int | long |
powerpc64 | 8 | 16 | 32 | 64 | 64 | 32 | 64 | 64 | 64 | unsigned | Big | 64 | unsigned long | int |
arm | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | unsigned | Little | 32 | unsigned int | unsigned short |
arm64 | 8 | 16 | 32 | 64 | 64 | 32 | 64 | 64 | 64 | unsigned | Little | 64 | unsigned long | int |
tricore | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | signed | Little | 32 | unsigned int | unsigned int |
rh850 | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 64 | 32 | signed | Little | 64 | unsigned int | long |
i386 | 8 | 16 | 32 | 32 | 64 | 32 | 64 | 96 | 32 | signed | Little | 32 | unsigned int | long |
x86_64 | 8 | 16 | 32 | 64 | 64 | 32 | 64 | 128 | 64 | signed | Little | 128 | unsigned long | int |
Your compiler specification also determines the values of many compiler-specific
macros. In case you want to know how Polyspace defines a specific macro, use the option -dump-preprocessing-info
.
To override the macro definition, use the option
Preprocessor definitions (-D)
.To undefine a macro, use the option
Disabled preprocessor definitions (-U)
.
Tips
If you encounter errors during a Polyspace analysis, see Fix Polyspace Compilation Errors Related to Green Hills Compiler
Polyspace supports the embedded configuration for the i386 target. If your x86 Green Hills compiler is configured for native Windows® development, you can see compilation errors or incorrect analysis results with Code Prover. Contact Technical Support.
For instance, Green Hills compilers consider a size of 12 bytes for
long double
for embedded targets, but 8 bytes for native Windows. Polyspace considers 12 bytes by default.If you create a Polyspace project from a build command that uses a Green Hills compiler, the compiler option
-os_dir
is not implemented in the project. To emulate the-os_dir
option, you can explicitly add the path argument of the option as an include folder to your Polyspace project.If you use Polyspace as You Code extensions in IDEs, enter this option in an analysis options file. See options file.
Command-Line Information
Parameter:
-compiler greenhills -target |
Value:
powerpc | powerpc64 | arm | arm64 | tricore | rh850 | arm | i386 |
x86_64 |
Default:
powerpc |
Example (Bug Finder):
polyspace-bug-finder -compiler greenhills -target
arm |
Example (Code Prover):
polyspace-code-prover -compiler greenhills -target
arm |
Example (Bug Finder Server):
polyspace-bug-finder-server -compiler greenhills -target
arm |
Example (Code Prover
Server):
polyspace-code-prover-server
-compiler greenhills -target arm |