<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 24, 2015 at 10:28 AM, Simon Atanasyan <span dir="ltr"><<a href="mailto:simon@atanasyan.com" target="_blank">simon@atanasyan.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Mar 24, 2015 at 7:16 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
><br>
> On Tue, Mar 24, 2015 at 8:49 AM, Simon Atanasyan <<a href="mailto:simon@atanasyan.com">simon@atanasyan.com</a>><br>
> wrote:<br>
>><br>
>> Author: atanasyan<br>
>> Date: Tue Mar 24 10:49:59 2015<br>
>> New Revision: 233088<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=233088&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=233088&view=rev</a><br>
>> Log:<br>
>> [Mips] Suppress "right shift by too large amount" warning<br>
>><br>
>> Visual C++ shows the "right shift by too large amount" warning if<br>
>> `MipsELFReference` is instantiated for 32-bit target and<br>
>> `Elf_Rel_Impl::getType`<br>
>> method has `unsigned char` return type. We can freely suppress the warning<br>
>> in<br>
>> that case because MIPS 32-bit ABI does not pack multiple relocation types<br>
>> into<br>
>> the single field `r_type` and the `MipsELFReference::_tag` should be<br>
>> always<br>
>> zero in that case.<br>
><br>
><br>
> Can we just disable the MSVC warning if it's wrong, then?<br>
<br>
</span>I thought about an alternative solution - fix Elf_Rel_Impl::getType()<br>
method so all its variants have the same return type uint32_t. Any<br>
objections against this idea?<br></blockquote><div><br>It still doesn't seem to improve anything - if getType() still only returns a number 0-255, the shift still is a zero-ing action. Hiding it from the compiler doesn't seem to change anything in the semantics of the operation & just obscures things further... seems to me, at least.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Simon Atanasyan<br>
</font></span></blockquote></div><br></div></div>