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:
Sebastian Huber 2018-07-27 09:16:53 +02:00
parent 613a7f9036
commit d8d18c3e80
1 changed files with 1 additions and 1 deletions

View File

@ -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"