ctype: Fix integer type for caseconv_entry::delta
The commit 46ba1675c4
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…
Reference in New Issue