|
Message-ID: <20120309170254.GG184@brightrain.aerifal.cx> Date: Fri, 9 Mar 2012 12:02:54 -0500 From: Rich Felker <dalias@...ifal.cx> To: musl@...ts.openwall.com Subject: Re: libm On Fri, Mar 09, 2012 at 10:56:55AM -0500, Rich Felker wrote: > > > Then add __RETCAST((x)), __RETCAST((x)+(y)), etc. Some trick will be > > > needed to make integer types result in a cast to double, though. > > > > hm the int->double and complex/real cases are tricky > > > > i thought +1.0 or +I would solve these, but that's wrong > > I think +0.0f might solve it. Isn't the promoted type of any integer > type with float double? Nope, it results in float. glibc has a trick involving obscure interactions of null pointer constants and the ?: operator that generates the right type using __typeof__, which is no big deal because this code is already only used when __typeof__ is available, anyway. There's a good blog article on it somewhere which I can't seem to find at the moment... 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.