From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/7396 Path: news.gmane.org!not-for-mail From: Alexander Monakov Newsgroups: gmane.linux.lib.musl.general Subject: Explicit casts in ctype.h suppress compiler warnings Date: Fri, 17 Apr 2015 13:59:14 +0300 (MSK) Message-ID: Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: ger.gmane.org 1429268423 17403 80.91.229.3 (17 Apr 2015 11:00:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 17 Apr 2015 11:00:23 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-7409-gllmg-musl=m.gmane.org@lists.openwall.com Fri Apr 17 13:00:10 2015 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1Yj40I-0007YP-Gj for gllmg-musl@m.gmane.org; Fri, 17 Apr 2015 13:00:10 +0200 Original-Received: (qmail 15828 invoked by uid 550); 17 Apr 2015 11:00:07 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 15659 invoked from network); 17 Apr 2015 10:59:26 -0000 User-Agent: Alpine 2.11 (LNX 23 2013-08-11) Xref: news.gmane.org gmane.linux.lib.musl.general:7396 Archived-At: For the following erroneous source code: #include int f(char *c) { return isdigit(c) || isspace(c); } GCC warns only for passing a pointer to isspace; isdigit is implemented as a macro that casts its argument to unsigned, and the warning is suppresed because the origin of the cast is in a system header. Since isspace is implemented with a static inline helper function, there is a warning. With glibc headers, no warning is issued in either case for a similar reason. I think it would be nice if musl's ctype.h could aid the compiler in diagnosing erroneous use, like it happens today for only for isspace() of all macros declared there. The cost of restructuring the header to achieve that does not seem too high. Thoughts? Thanks. Alexander