mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 04:49:25 +08:00
ctype: Fix integer type for caseconv_entry::delta
The commit 46ba1675c457324b0eeef4670a09101ef3f34c50 accidently changed a bit-field from signed to unsigned. The caseconv_entry::delta must be a signed integer, see also "newlib/libc/ctype/caseconv.t". Unfortunately, a standard GCC/Newlib build is done without -Wsign-conversion. Using this warning option would have helped to avoid this bug: caseconv.t:2:22: warning: unsigned conversion from 'int' to 'unsigned int:17' changes value from '-32' to '131040' [-Wsign-conversion] {0x0061, 25, TOUP, -32}, Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
This commit is contained in:
parent
613a7f9036
commit
d8d18c3e80
@ -39,7 +39,7 @@ static struct caseconv_entry {
|
||||
uint_least32_t first: 21;
|
||||
uint_least8_t diff: 8;
|
||||
uint_least8_t mode: 2;
|
||||
uint_least32_t delta: 17;
|
||||
int_least32_t delta: 17;
|
||||
} __attribute__ ((packed))
|
||||
caseconv_table [] = {
|
||||
#include "caseconv.t"
|
||||
|
Loading…
x
Reference in New Issue
Block a user