[LLVMdev] StmtPrinter long double support.

Jean-Daniel Dupas devlists at shadowlab.org
Fri Jun 6 11:28:43 PDT 2008

Le 6 juin 08 à 18:47, Dale Johannesen a écrit :

> On Jun 6, 2008, at 8:51 AM, Jean-Daniel Dupas wrote:
>> Hello,
>> I'm playing with llvm/clang and I have a problem when I try to use  
>> the -ast-print options for a file that uses long double.
>> The Basic/Targets.cpp file defined the x86 (and x86_64) long double  
>> type as APFloat::x87DoubleExtended.
>> Then, when the AST printer try to write a long double literal value  
>> (using VisitFloatingLiteral()), it call FloatingLiteral- 
>> >getValueAsDouble() and the later does not support long double, so  
>> it try to call convertToDouble() as a fallback and crash due to an  
>> invalid assertion. APFloat.cpp:2631: failed assertion `semantics ==  
>> (const llvm::fltSemantics*)&IEEEdouble'
>> This is a know issue as some there is some comments like "// FIXME:  
>> We need something for long double here." in FloatingLiteral- 
>> >getValueAsDouble(), and "// FIXME: print value more precisely." in  
>> VisitFloatingLiteral().
>> I wonder what will be the best way to solve those both issue.  Has  
>> somebody planned to add support for long double to APInt and  
>> APFloat ?
> There are no plans to support the use of host long double anywhere,  
> if that's what you mean.
> Probably this dumper should use APFloat::convert to get the long  
> double into APFloat::IEEEdouble format (with loss of precision; the  
> comment claims that's OK), then use convertToDouble on that.  If you  
> want full precision, you'll need to print all the bits in hex; see  
> EmitGlobalConstant in AsmPrinter.cpp.

Thank you for the reply, it give me some track to investigate.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080606/43bb1c30/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2427 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080606/43bb1c30/attachment.bin>

More information about the llvm-dev mailing list