Building Chromium on Windows reports this warning: CXX obj\third_party\WebKit\Source\WebCore\rendering\webcore_rendering.RenderMediaControlsChromium.obj ..\..\third_party\WebKit\Source\WebCore\rendering\RenderMediaControlsChromium.cpp(132) : warning C4146: unary minus operator applied to unsigned type, result still unsigned I think the behaviour is OK as it's passed to an IntRect (and not converted to float), so 2s complement keeps things correct. It seems a bit safer and less noisy to cast to int, but I'm not sure what the general acceptance of making changes for warnings is.
Created attachment 140587 [details] Patch
Comment on attachment 140587 [details] Patch If this warning is still happening, this is an actual bug. C4146 says that both the operand and the result are non-negative. For what it's worth, I'm happy to R+ anything that removes warnings on Windows. Unfortunately, this code doesn't look like it exists any more. Sad trombone noise.
Thanks. My (unsubstantiated) interpretation was that X's bit pattern was being negated, but that the value's type was still unsigned. i.e., 0x00000001 -> 0xFFFFFFFF, not 0x00000001 -> -1 as expected. But then, the 0xFFFFFFFF gets shoved into an int in IntRect which turns it into -1, so it's OK. (Maybe that's wrong though?) If it was passed to a FloatRect it would definitely have been wrong. Anyway... it's gone now, so it's quiet -> I'm happy. :)