Advertencia C26452
Desbordamiento aritmético: el recuento de desplazamiento a la izquierda es negativo o mayor o igual que el tamaño del operando, que es un comportamiento indefinido (io.3)
Comentarios
Esta advertencia indica que el número de desplazamientos es negativo, o bien es mayor o igual que el número de bits en el operando desplazado. Ambos casos provocan un comportamiento indefinido.
Advertencia C4293 es una comprobación similar en el compilador de Microsoft C++.
Nombre del análisis de código: SHIFT_COUNT_NEGATIVE_OR_TOO_BIG
Ejemplo
unsigned long long combine(unsigned lo, unsigned hi)
{
return (hi << 32) | lo; // C26252 here
}
Para corregir esta advertencia, utilice el código siguiente:
unsigned long long combine(unsigned lo, unsigned hi)
{
return (static_cast<unsigned __int64>(hi) << 32) | lo; // OK
}
Consulte también
26450
26451
26453
26454
ES.101: Usar tipos sin firmar para la manipulación de bits
ES.102: Usar tipos con signo para la aritmética
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de