Compiler Warning (level 1) C4293


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at 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.

The following sample generates C4293:

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