|
Message-ID: <20150417213602.GF6817@brightrain.aerifal.cx> Date: Fri, 17 Apr 2015 17:36:02 -0400 From: Rich Felker <dalias@...c.org> To: musl@...ts.openwall.com Subject: Re: Explicit casts in ctype.h suppress compiler warnings On Fri, Apr 17, 2015 at 09:24:09PM +0300, Alexander Monakov wrote: > > Do you have an idea in mind for how we could achieve that? I suspect > > the macros are still better optimizable than the inline function > > approach, so I'd lean towards doing a macro that avoids evaluating c > > and just checks its type, which would involve using ?: I think. > > I admit I was thinking of doing isspace-style inlines everywhere, but thanks > to your suggestion I was able to come up with this: > > static __inline void __is_int(int a) {} > #define isdigit(a) (__is_int(0?(a):0), ((unsigned)(a)-'0') < 10) This still depends on the inline function getting honored, and puts extra crap in the debug output. Instead, how about: #define isdigit(a) (0 ? (isdigit)(a) : ((unsigned)(a)-'0') < 10) Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.