I've settled on replacing x << n with x * (1 << n); this gets rid of the "left shift of negative value" warning, but will still trigger undefined behavior if the multiplication overflows. It also still looks like a left shift, which is good for the readability of the fixed-point code. (The compiler is smart enough to recognize that the multiplication+shift is just a shift, for both variable and constant shift amounts, so the generated code should not change.) BUG=chromium:603491 Review-Url: https://codereview.webrtc.org/1989803002 Cr-Commit-Position: refs/heads/master@{#12845}
Name: WebRTC URL: http://www.webrtc.org Version: 90 License: BSD License File: LICENSE Description: WebRTC provides real time voice and video processing functionality to enable the implementation of PeerConnection/MediaStream. Third party code used in this project is described in the file LICENSE_THIRD_PARTY.