[PATCH] PR libstdc++/13045 / C++ demangler, floating values and function pointer type return type postfix fix.

Gabriel Dos Reis gdr@integrable-solutions.net
Tue Nov 25 02:22:00 GMT 2003


Geert Bosch <bosch@gnat.com> writes:

| On Nov 24, 2003, at 16:30, Ian Lance Taylor wrote:
| > It's perhaps worth noting that the libiberty demangler currently
| > follows a much simpler approach than the C++ demangler, which is to
| > not attempt to interpret floating constants at all.  This is fully
| > compliant with non-IEEE targets, and produces demanglings like
| >     void f<1>(A<(1) + (((int)(-((float)3f800000))))>)
| 
| Doesn't (float) 0x3f800000 produce the floating point number
| 1065353216.0
| (which has memory representation 0x4e7e0000) instead of 1.0 as you
| expect?

That also makes other unspoken assumptions.  I'm getting more and of
the opinion that C99 hex floating notation (with canonical form) might
a better alternative.

-- Gaby



More information about the Libstdc++ mailing list