|
From: | Markus Armbruster |
Subject: | Re: [Qemu-devel] [PATCH 3/3] disas/arm: avoid clang shifting negative signed warning |
Date: | Tue, 10 Nov 2015 19:52:25 +0100 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Peter Maydell <address@hidden> writes: > On 10 November 2015 at 17:33, Paolo Bonzini <address@hidden> 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 <address@hidden> >> >> 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.
[Prev in Thread] | Current Thread | [Next in Thread] |