[cfe-dev] APFloat::toString() handling of MS FLT_MAX and DBL_MAX

Will Wilson will at indefiant.com
Tue Apr 16 08:54:46 PDT 2013


Sorry, I'm not being clear enough. It's nothing to do with runtime libs.
Rather it's the result of printing out the expanded literal value directly
from the AST. For instance:

   - Clang parses the DBL_MAX macro into the AST (defined
   as 1.7976931348623158e+308)
   - Pretty printing out the FloatingLiteral results in: 1.797693134862316E+
   308
   - Feeding these literals back to MSVC results in: error C2177: constant
   too big

So my question is: Would it be sensible to try and ensure the printed
values never exceed their maximums?

Cheers,
Will.


On 16 April 2013 00:56, David Blaikie <dblaikie at gmail.com> wrote:

>
> On Apr 16, 2013 8:01 AM, "Will Wilson" <will at indefiant.com> wrote:
> >
> > Hi All,
> >
> > I'm rewriting MS C++ code via clang and have an issue involving the
> printed representations of FLT_MAX and DBL_MAX. In both cases the printed
> literals exceed the inputs.
> >
> > From MS float.h:
> >
> > #define DBL_MAX         1.7976931348623158e+308
> > // Becomes 1.797693134862316E+308
> >
> > #define FLT_MAX         3.402823466e+38F
> > // Becomes 3.4028235E+38F
> >
> > Rewriting the values leads to compilation errors due to the literals
> exceeding their maximums. This doesn't altogether surprise me given the
> nature of FP arithmetic and string conversion but I was wondering if this
> could/should be treated as a bug given the significance of these values?
>
> How are you printing these values out? Libstdc++ or libc++? Does the
> behavior reproduce under GCC too? I could guess/assume a bug in the
> standard library implementation you are using, but that's just a guess
>
> >
> > - Will.
> >
> > _______________________________________________
> > cfe-dev mailing list
> > cfe-dev at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
> >
>



-- 
*Indefiant Ltd.*
*
*
Firsby Lodge, New Main Road, Scamblesby, Louth, Lincs LN11 9XH UK
*Tel: +44 20 8123 7663 England Registered No. 07936820 VAT No. **128556202*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130416/a62368c5/attachment.html>


More information about the cfe-dev mailing list