public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] ctype: Fix bitfield types on 16-bit targets
@ 2018-07-20 12:25 Sebastian Huber
  0 siblings, 0 replies; only message in thread
From: Sebastian Huber @ 2018-07-20 12:25 UTC (permalink / raw)
  To: newlib-cvs

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=46ba1675c457324b0eeef4670a09101ef3f34c50

commit 46ba1675c457324b0eeef4670a09101ef3f34c50
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Fri Jul 20 13:04:56 2018 +0200

    ctype: Fix bitfield types on 16-bit targets
    
    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>

Diff:
---
 newlib/libc/ctype/categories.c  | 5 +++--
 newlib/libc/ctype/towctrans_l.c | 9 +++++----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/newlib/libc/ctype/categories.c b/newlib/libc/ctype/categories.c
index c237324..85328ef 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 9759cf7..42085ac 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"


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2018-07-20 12:25 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-20 12:25 [newlib-cygwin] ctype: Fix bitfield types on 16-bit targets Sebastian Huber

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).