Allow negative operand for left shifts (-allow-negative-operand-in-shift
)
Allow left shift operations on a negative number
Description
This option affects a Code Prover analysis only.
Specify that the verification must allow left shift operations on a negative number.
Set Option
User interface (desktop products only): In your project configuration, the option is on the Check Behavior node.
User interface (Polyspace Platform, desktop products only): In your project configuration, the option is on the Static Analysis tab on the Run Time Errors > Check Behavior node.
Command line and options file: Use the option
-allow-negative-operand-in-shift
. See Command-Line Information.
Why Use This Option
According to the C99 standard (sec 6.5.7), the result of a left shift operation on a negative number is undefined. Following the standard, the verification produces a red check on left shifts of negative numbers.
If your compiler has a well-defined behavior for left shifts of negative numbers, set this option. Note that allowing left shifts of negative numbers can reduce the cross-compiler portability of your code.
Settings
- On
The verification allows shift operations on a negative number, for instance,
-2 << 2
.- Off (default)
If a shift operation is performed on a negative number, the verification generates an error.
Command-Line Information
Parameter: -allow-negative-operand-in-shift |
Default: Off |
Example (Code Prover):
polyspace-code-prover -sources |
Example (Code Prover Server):
polyspace-code-prover-server -sources |