r272867 - [Lex] Try to fix a 'comparison is always false' warning. NFC.

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 16 11:11:13 PDT 2016


ah, rightio - thanks for the reminder!

On Thu, Jun 16, 2016 at 10:44 AM, George Burgess IV <
george.burgess.iv at gmail.com> wrote:

> I don't think so -- 4.7p2 says "If the destination type is unsigned, the
> resulting value is the least unsigned integer congruent to the source
> integer (modulo 2 n where n is the number of bits used to represent the
> unsigned type). [ Note: In a two’s complement representation, this
> conversion is conceptual and there is no change in the bit pattern (if
> there is no truncation). — end note ]"
>
> OTOH, the other way around (unsigned -> signed) is implementation-defined.
> :)
>
> On Thu, Jun 16, 2016 at 10:27 AM, David Blaikie <dblaikie at gmail.com>
> wrote:
>
>> I can't remember the rules - but wouldn't this produce UB on a signed
>> char platform in the case where Ch is negative? (or is that just
>> unspecified? implementation defined?)
>>
>> On Wed, Jun 15, 2016 at 7:30 PM, George Burgess IV via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> Author: gbiv
>>> Date: Wed Jun 15 21:30:33 2016
>>> New Revision: 272867
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=272867&view=rev
>>> Log:
>>> [Lex] Try to fix a 'comparison is always false' warning. NFC.
>>>
>>> Modified:
>>>     cfe/trunk/lib/Lex/PPDirectives.cpp
>>>
>>> Modified: cfe/trunk/lib/Lex/PPDirectives.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPDirectives.cpp?rev=272867&r1=272866&r2=272867&view=diff
>>>
>>> ==============================================================================
>>> --- cfe/trunk/lib/Lex/PPDirectives.cpp (original)
>>> +++ cfe/trunk/lib/Lex/PPDirectives.cpp Wed Jun 15 21:30:33 2016
>>> @@ -162,7 +162,7 @@ static bool warnByDefaultOnWrongCase(Str
>>>    SmallString<32> LowerInclude{Include};
>>>    for (char &Ch : LowerInclude) {
>>>      // In the ASCII range?
>>> -    if (Ch < 0 || Ch > 0x7f)
>>> +    if (static_cast<unsigned char>(Ch) > 0x7f)
>>>        return false; // Can't be a standard header
>>>      // ASCII lowercase:
>>>      if (Ch >= 'A' && Ch <= 'Z')
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160616/35521a81/attachment-0001.html>


More information about the cfe-commits mailing list