mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 04:12:10 +08:00
Fix Rust lex selftest when using libiconv
The Rust lex selftest fails on our Windows build. I tracked this down to a use of UTF-32 as a parameter to convert_between_encodings. Here, iconv_open succeeds, but the actual conversion of a tab character fails with EILSEQ. I suspect that "UTF-32" is being interpreted as big-endian, as changing the call to use "UTF-32LE" makes it work. This patch implements this fix.
This commit is contained in:
parent
5dfe4bfcb9
commit
775d36a916
@ -695,9 +695,16 @@ rust_parser::lex_string ()
|
||||
if (is_byte)
|
||||
obstack_1grow (&obstack, value);
|
||||
else
|
||||
convert_between_encodings ("UTF-32", "UTF-8", (gdb_byte *) &value,
|
||||
sizeof (value), sizeof (value),
|
||||
&obstack, translit_none);
|
||||
{
|
||||
#if WORDS_BIGENDIAN
|
||||
#define UTF32 "UTF-32BE"
|
||||
#else
|
||||
#define UTF32 "UTF-32LE"
|
||||
#endif
|
||||
convert_between_encodings (UTF32, "UTF-8", (gdb_byte *) &value,
|
||||
sizeof (value), sizeof (value),
|
||||
&obstack, translit_none);
|
||||
}
|
||||
}
|
||||
else if (pstate->lexptr[0] == '\0')
|
||||
error (_("Unexpected EOF in string"));
|
||||
|
Loading…
Reference in New Issue
Block a user