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
26450
26451
26452
26454
ES.101: Use unsigned types for bit manipulation
ES.102: Use signed types for arithmetic
Tilbakemeldinger
https://aka.ms/ContentUserFeedback.
Kommer snart: Gjennom 2024 faser vi ut GitHub Issues som tilbakemeldingsmekanisme for innhold, og erstatter det med et nytt system for tilbakemeldinger. Hvis du vil ha mer informasjon, kan du se:Send inn og vis tilbakemelding for