Примеры ошибок, обнаруженных с помощью диагностики V673


V673. More than N bits are required to store the value, but the expression evaluates to the T type which can only hold K bits.


.NET CoreCLR

V673 The '0xefefefef << 28' expression evaluates to 1080581331517177856. 60 bits are required to store the value, but the expression evaluates to the 'unsigned' type which can only hold '32' bits. cee_dac _dac object.inl 95


inline void Object::EnumMemoryRegions(void)
{
  ....
  SIZE_T size = sizeof(ObjHeader) + sizeof(Object);
  ....
  size |= 0xefefefef << 28;
  ....
}

size |= SIZE_T(0xefefefef) << 28;

Similar errors can be found in some other places:

  • V673 The '0xefefefef << 28' expression evaluates to 1080581331517177856. 60 bits are required to store the value, but the expression evaluates to the 'unsigned' type which can only hold '32' bits. cee_dac dynamicmethod.cpp 807


А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++ и C#

goto PVS-Studio;