<div dir="ltr"><div><div><div>Hi Joerg,<br><br></div>The long double to be parsed are the bit pattern of long double in hexadecimal.<br></div>For example, 4001a000000000000000 in the mangled name stands for 0xap-1L (i.e. 5.0)<br>
<br>To properly guard this test case, I have to know the number of bits of long double,<br></div><div class="gmail_extra">and it seems that __LDBL_MANT_DIG__ is not for this purpose.<br>
<br>Although using __SIZEOF_LONG_DOUBLE__ is not a perfect solution, since the<br>additional padding might result in the overestimation of the number of bits.  But it<br></div><div class="gmail_extra">is sufficient to distinguish the targets as far as I know.  Both 12 and 16 are fine for<br>
the test case.<br><br></div><div class="gmail_extra">If you wish to have more information, you can check the parse_floating_number()<br></div><div class="gmail_extra">function in src/cxa_demangle.cpp.<br></div><div class="gmail_extra">
<br></div><div class="gmail_extra">Sincerely,<br></div><div class="gmail_extra">Logan<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 7, 2014 at 3:33 AM, Joerg Sonnenberger <span dir="ltr"><<a href="mailto:joerg@britannica.bec.de" target="_blank">joerg@britannica.bec.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>On Wed, May 07, 2014 at 12:14:32AM +0800, Logan Chien wrote:<br>
> > Can you use __LDBL_MANT_DIG__ == 64 instead?<br>
> ><br>
><br>
> It seems that __LDBL_MANT_DIG__ stands for the number of bits of<br>
> significand (or mantissa.)  However, I wish to know the size of long<br>
> double.  AFAIK, there is no macro for this.  Any good suggestion?  Thanks.<br>
<br>
</div>Problem is that the size of long double may include additional padding,<br>
so it gets rounded up to 12 or 16 bytes. On AMD64, you will get a size<br>
of 16 bytes for SPARC64 as well, but it has a different encoding.<br>
<div><div><br>
Joerg<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div></div>