Peter Maydell <peter.mayd...@linaro.org> writes: > On 10 November 2015 at 17:33, Paolo Bonzini <pbonz...@redhat.com> wrote: >> >> >> On 10/11/2015 16:57, Stefan Hajnoczi wrote: >>> clang 3.7.0 on x86_64 warns about the following: >>> >>> disas/arm.c:1782:17: warning: shifting a negative signed value is >>> undefined [-Wshift-negative-value] >>> imm |= (-1 << 7); >>> ~~ ^ >>> >>> Note that this patch preserves the tab indent in this source file >>> because the surrounding code still uses tabs. >>> >>> Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> >> >> I would like to know a case where (except with ubsan) clang actually >> uses the optimization. >> >> If not, this is just error message theatre (which is not news for clang) >> and shouldn't have been part of -Wall. > > It could be they're attempting to warn us now about the possibility > that in a future version of clang they will start using this UB > to optimize with. > > http://stackoverflow.com/questions/22883790/left-shift-of-negative-values > reports that Intel's ICC will use this in dead-code-elimination > optimization. One day clang might do that too.
Nice example of a compiler being gratuitously nasty.