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.

Reply via email to