imgui: fix undefined behaviour bitshift.
authorDave Airlie <airlied@redhat.com>
Fri, 17 May 2019 01:26:57 +0000 (11:26 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 17 May 2019 02:33:09 +0000 (12:33 +1000)
imgui_draw.cpp:1781: error[shiftTooManyBitsSigned]: Shifting signed 32-bit value by 31 bits is undefined behaviour

Reported by coverity

Acked-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/imgui/imgui_draw.cpp

index 1d4e1d51692a9d236ad09a6da84d9ab73a985395..c69c01ee8018aae6fb04639291d058c00f7fda29 100644 (file)
@@ -1778,7 +1778,7 @@ static void UnpackBoolVectorToFlatIndexList(const ImBoolVector* in, ImVector<int
     for (const int* it = it_begin; it < it_end; it++)
         if (int entries_32 = *it)
             for (int bit_n = 0; bit_n < 32; bit_n++)
     for (const int* it = it_begin; it < it_end; it++)
         if (int entries_32 = *it)
             for (int bit_n = 0; bit_n < 32; bit_n++)
-                if (entries_32 & (1 << bit_n))
+                if (entries_32 & (1u << bit_n))
                     out->push_back((int)((it - it_begin) << 5) + bit_n);
 }
 
                     out->push_back((int)((it - it_begin) << 5) + bit_n);
 }