This is the mail archive of the libc-hacker@sourceware.cygnus.com mailing list for the glibc project.
Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
From lawson_whitney@juno.com Sat May 22 20:28:42 1999 Return-Path: <lawson_whitney@juno.com> Delivered-To: hjl@lucon.org Received: from mescaline.gnu.org (mescaline.gnu.org [158.121.106.21]) by ocean.lucon.org (Postfix) with ESMTP id 2DC3E57BB for <hjl@lucon.org>; Sat, 22 May 1999 20:28:41 -0700 (PDT) Received: from x9.boston.juno.com (x9.boston.juno.com [205.231.100.25]) by mescaline.gnu.org (8.9.1a/8.9.1) with ESMTP id XAA32139 for <hjl@gnu.org>; Sat, 22 May 1999 23:28:39 -0400 From: lawson_whitney@juno.com Received: (from lawson_whitney@juno.com) by x9.boston.juno.com (queuemail) id EA99BQ9K; Sat, 22 May 1999 23:28:14 EDT To: hjl@gnu.org Date: Sat, 22 May 1999 23:37:09 ric Subject: wctype.h Message-ID: <19990522.233811.2191.1.lawson_whitney@juno.com> X-Mailer: Juno 1.49 X-Juno-Line-Breaks: 0-31,33,35,37,39-58,60-101 I'm sending you a copy because I think it applies to libc5 also. Thanks for your work on libc, binutils and I know not what all else. Good day! If I am reporting a bug that has already been fixed, please forgive me. I have glibc-2.0.6, i586-gnu-linux, gcc-2.7.2.3. I am sorry, I did not save config.make and config.status when I removed the source to make way for the next release of Wine. I don't think they matter in this case anyway. Including wctype.h provokes the compiler to issue 4 spurious warnings. Also, I believe the result of _ISwbit(bit) to be wrong for 15 <bit <24. Rather than fix the compiler, I propose to fix the header. Here is the text case: Script started on Sat May 22 19:04:20 1999 witsend:/usr/src/bull$ cat isw.c #include <wctype.h> #include <stdio.h> void main() { int o, thefire; for (o = 0 ; o < 4; o++) { for (thefire = o * 8; thefire < o * 8 + 8; thefire ++) { printf(" %8x", _ISwbit(thefire));} printf("\n");} } witsend:/usr/src/bull$ gcc -O2 -o isw isw.c In file included from isw.c:1: /usr/local/include/wctype.h:84: warning: left shift count >= width of type /usr/local/include/wctype.h:85: warning: left shift count >= width of type /usr/local/include/wctype.h:86: warning: left shift count >= width of type /usr/local/include/wctype.h:87: warning: left shift count >= width of type witsend:/usr/src/bull$ isw 1000000 2000000 4000000 8000000 10000000 20000000 40000000 80000000 10000 20000 40000 80000 100000 200000 400000 800000 1000000 2000000 4000000 8000000 10000000 20000000 40000000 80000000 1 2 4 8 10 20 40 80 witsend:/usr/src/bull$ exit exit Script done on Sat May 22 19:05:21 1999 Here, how I propose to fix it: diff -urN was/wctype.h is/wctype.h --- was/wctype.h Sat May 22 19:12:06 1999 +++ is/wctype.h Sat May 22 19:33:16 1999 @@ -68,7 +68,7 @@ #if __BYTE_ORDER == __BIG_ENDIAN #define _ISwbit(bit) (1 << bit) #else /* __BYTE_ORDER == __LITTLE_ENDIAN */ -#define _ISwbit(bit) ((bit < 8) ? 1UL << (bit + 24) : 1UL << (bit + 8)) +#define _ISwbit(bit) ((1UL << (bit + 24 - (bit / 8) * 16))) #endif enum And here, a retest: Script started on Sat May 22 19:34:10 1999 witsend:/usr/src/bull$ gcc -O2 -o isw isw.c witsend:/usr/src/bull$ isw 1000000 2000000 4000000 8000000 10000000 20000000 40000000 80000000 10000 20000 40000 80000 100000 200000 400000 800000 100 200 400 800 1000 2000 4000 8000 1 2 4 8 10 20 40 80 witsend:/usr/src/bull$ exit exit Script done on Sat May 22 19:34:31 1999 This is also relevant to libc5, I think. I hope this is useful, or at least amusing. And last, the patch gzipped and uuencoded, in case the mail has dealt unkindly with the text. Lawson <lawson_whitney@juno.com> >< Microsoft free environment This mail client runs on Wine. Your mileage may vary. begin 644 wctype.diff.gz M'XL(",T^1S<``W=C<&%T8V@`=8Y!2\-`$(7/W5_QP$LWZS9N*C$)*49ID$", MT,9#3TO:[.*"!K$IH?_>;%I00SW,S)N9-Q]3&ZW!#U\%NFKO=KOV^*EF;S`_ MFG#._RPGZZK%<W6$YT&$D?"B&[\784@88[\O1\;Y/!)G8Y*`^\'U'=B0DX3@ MRFA(^;@I4_FR6J8K+!:VSYYD6BRSAZ)WU$J;1D%FZVYKVFD?=#(5B&-8V1O4 M^U[!=2YP\JPL\_2,@N,2?IEF"V($%/<0K[EE#R,&[Y8B<"2@G[!S2^!C]I :U\(=")_2X>6F-IJ`0#6'#_(-L/58U8X!``!E ` end ___________________________________________________________________ You don't need to buy Internet access to use free Internet e-mail. Get completely free e-mail from Juno at http://www.juno.com/getjuno.html or call Juno at (800) 654-JUNO [654-5866] -- H.J. Lu (hjl@gnu.org)
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |