Skip to content

Latest commit

 

History

History
35 lines (27 loc) · 998 Bytes

compiler-warning-level-1-c4293.md

File metadata and controls

35 lines (27 loc) · 998 Bytes
title description ms.date f1_keywords helpviewer_keywords ms.assetid
Compiler Warning (level 1) C4293
Describes the causes of MSVC compiler warning C4293, and shows how to fix it.
07/15/2020
C4293
C4293
babecd96-eb51-41a5-9835-462c7a46dbad

Compiler Warning (level 1) C4293

'operator' : shift count negative or too big, undefined behavior

If a shift count is negative or too large, the behavior of the resulting image is undefined.

Remarks

To resolve this issue, you can use a cast on the first operand to expand it to the size of the result type.

Example

The following sample generates C4293, and shows ways to fix it:

// C4293.cpp
// compile with: /c /W1
unsigned __int64 combine (unsigned lo, unsigned hi)
{
   return (hi << 32) | lo;   // C4293

   // In C, try the following line instead:
   // return ( (unsigned __int64)hi << 32) | lo;
   // In C++, try this line instead:
   // return (static_cast<unsigned __int64>(hi) << 32) | lo;
}