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 <dblai...@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@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@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits