Hi Mark! On 2021-09-22T00:54:30+0200, Mark Wielaard <m...@klomp.org> wrote: > There were two warnings in lexer parse_byte_char and parse_byte_string > code for arches with signed chars: > > rust-lex.cc: In member function > ‘Rust::TokenPtr Rust::Lexer::parse_byte_char(Location)’: > rust-lex.cc:1564:21: warning: comparison is always false due to limited > range of data type [-Wtype-limits] > 1564 | if (byte_char > 127) > | ~~~~~~~~~~^~~~~
That's <https://github.com/Rust-GCC/gccrs/pull/343>. > rust-lex.cc: In member function > ‘Rust::TokenPtr Rust::Lexer::parse_byte_string(Location)’: > rust-lex.cc:1639:27: warning: comparison is always false due to limited > range of data type [-Wtype-limits] > 1639 | if (output_char > 127) > | ~~~~~~~~~~~~^~~~~ That's <https://github.com/Rust-GCC/gccrs/pull/344>. Both these related to <https://github.com/Rust-GCC/gccrs/issues/336> "GCC '--enable-bootstrap' build". > The fix would be to cast to an unsigned char before the comparison. > But that is actually wrong, and would produce the following errors > parsing a byte char or byte string: > > bytecharstring.rs:3:14: error: ‘byte char’ ‘�’ out of range > 3 | let _bc = b'\x80'; > | ^ > bytecharstring.rs:4:14: error: character ‘�’ in byte string out of range > 4 | let _bs = b"foo\x80bar"; > | ^ > > Both byte chars and byte strings may contain up to \xFF (255) > characters. It is utf-8 chars or strings that can only [truncated here -- but > I understand what you mean] I think this does match my thoughts in <https://github.com/Rust-GCC/gccrs/pull/343#issuecomment-816214689>. > Remove the faulty check and add a new testcase bytecharstring.rs > that checks byte chars and strings do accept > 127 hex char > escapes, but utf-8 chars and strings reject such hex char escapes. > --- > > https://code.wildebeest.org/git/user/mjw/gccrs/commit/?h=bytecharstring Thanks, that's now: <https://github.com/Rust-GCC/gccrs/pull/687> "Fix byte char and byte string lexing code". Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955 -- Gcc-rust mailing list Gcc-rust@gcc.gnu.org https://gcc.gnu.org/mailman/listinfo/gcc-rust