mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 17:18:24 +08:00
gdb: testsuite: make string[] type as char in gdb.base/charset.c
This reverts the commit ff656e2e1cb1 ("gdb: testsuite: fix failed testcases in gdb.base/charset.exp"). The original test code has no problem. On an architecture where char is signed, then both 'A' and ebcdic_us_string[7] will yield -63, which makes the equality true. On an architecture where char is unsigned, then both 'A' and ebcdic_us_string[7] will yield 193, which also makes the equality true. The test cases only failed on LoongArch. The default type of char is signed char on LoongArch, like x86-64. But when use gdb print command on LoongArch, the default type of char is unsigned char, this is wrong, I will look into it later, sorry for that. On LoongArch: $ cat test_char.c #include <stdio.h> int main() { char c1 = 193; unsigned char c2 = 193; printf("%d\n", c1); printf("%d\n", c1 == c2); return 0; } $ gcc test_char.c -o test_char $ ./test_char -63 0 (gdb) set target-charset EBCDIC-US (gdb) print 'A' $1 = 193 'A' (gdb) print /c 'A' $2 = 193 'A' (gdb) print /u 'A' $3 = 193 (gdb) print /d 'A' $4 = -63 (gdb) print /x 'A' $5 = 0xc1 Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
This commit is contained in:
@ -44,10 +44,10 @@
|
||||
|
||||
#define NUM_CHARS (71)
|
||||
|
||||
unsigned char ascii_string[NUM_CHARS];
|
||||
unsigned char iso_8859_1_string[NUM_CHARS];
|
||||
unsigned char ebcdic_us_string[NUM_CHARS];
|
||||
unsigned char ibm1047_string[NUM_CHARS];
|
||||
char ascii_string[NUM_CHARS];
|
||||
char iso_8859_1_string[NUM_CHARS];
|
||||
char ebcdic_us_string[NUM_CHARS];
|
||||
char ibm1047_string[NUM_CHARS];
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
@ -86,7 +86,7 @@ long long_array[3];
|
||||
explicit casts or warnings. */
|
||||
|
||||
void
|
||||
init_string (unsigned char string[],
|
||||
init_string (char string[],
|
||||
unsigned char x,
|
||||
unsigned char alert,
|
||||
unsigned char backspace,
|
||||
@ -115,7 +115,7 @@ init_string (unsigned char string[],
|
||||
|
||||
|
||||
void
|
||||
fill_run (unsigned char string[], int start, int len, int first)
|
||||
fill_run (char string[], int start, int len, int first)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
Reference in New Issue
Block a user