Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-07-20 14:04:56 +0300
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-07-20 15:25:03 +0300
commit46ba1675c457324b0eeef4670a09101ef3f34c50 (patch)
tree2789ab4cc09f02c12ceaff9f901543f73a93d204
parente9f223877f42c31353bd8b522596cb5fe1b87388 (diff)
ctype: Fix bitfield types on 16-bit targetsnewlib-snapshot-20180720
This prevents errors like this: newlib/libc/ctype/categories.c:6:3: error: width of 'first' exceeds its type unsigned int first: 24; ^ Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
-rw-r--r--newlib/libc/ctype/categories.c5
-rw-r--r--newlib/libc/ctype/towctrans_l.c9
2 files changed, 8 insertions, 6 deletions
diff --git a/newlib/libc/ctype/categories.c b/newlib/libc/ctype/categories.c
index c237324ec..85328ef2e 100644
--- a/newlib/libc/ctype/categories.c
+++ b/newlib/libc/ctype/categories.c
@@ -1,10 +1,11 @@
#include <wctype.h>
+#include <stdint.h>
#include "categories.h"
struct _category {
enum category cat: 8;
- unsigned int first: 24;
- unsigned short delta;
+ uint_least32_t first: 24;
+ uint_least16_t delta;
} __attribute__((packed));
static const struct _category categories[] = {
diff --git a/newlib/libc/ctype/towctrans_l.c b/newlib/libc/ctype/towctrans_l.c
index 9759cf7bc..42085ac78 100644
--- a/newlib/libc/ctype/towctrans_l.c
+++ b/newlib/libc/ctype/towctrans_l.c
@@ -1,6 +1,7 @@
/* Modified (m) 2017 Thomas Wolff: revise Unicode and locale/wchar handling */
#include <_ansi.h>
#include <wctype.h>
+#include <stdint.h>
//#include <errno.h>
#include "local.h"
@@ -35,10 +36,10 @@
enum {TO1, TOLO, TOUP, TOBOTH};
enum {EVENCAP, ODDCAP};
static struct caseconv_entry {
- unsigned int first: 21;
- unsigned short diff: 8;
- unsigned char mode: 2;
- int delta: 17;
+ uint_least32_t first: 21;
+ uint_least8_t diff: 8;
+ uint_least8_t mode: 2;
+ uint_least32_t delta: 17;
} __attribute__ ((packed))
caseconv_table [] = {
#include "caseconv.t"