Edit

Share via


Warning C26453

Arithmetic overflow: Left shift of a negative signed number is undefined behavior (io.4)

Remarks

This warning indicates the code left shifts a negative signed integral value, which is nonportable and triggers implementation defined behavior.

Code analysis name: LEFTSHIFT_NEGATIVE_SIGNED_NUMBER

Example

void leftshift(int shiftCount) { const auto result = -1 << shiftCount; // C26453 reported here // code } 

To correct this warning, use the following code:

void leftshift(int shiftCount) { const auto result = ~0u << shiftCount; // OK // code } 

See also

C26450
C26451
C26452
C26454
ES.101: Use unsigned types for bit manipulation
ES.102: Use signed types for arithmetic