Fw: [cxx-abi-dev] Decimal Floating Point mangling was(Fw: [cxx-abi-dev] C++0x: Mangling of rvalue reference type)s

PremAnand M Rao premanand.rao at hp.com
Mon Aug 20 22:02:40 UTC 2007


Hi Michael,

I am not sure what you said "Absolutely not" to.

 > The point is that for platforms that support native types, the
 > native type mangling is available for a potentially more efficient
 > implementation. For platforms that can only support emulation,
 > the class library type and its mangling is available. Have I missed
 > the point?

I may have misunderstood what you are saying, if so, please correct me.
The current C++ TR specification permits an implementation to choose to 
implement the Decimal FP types as either a native type or a class type, 
if it preserves the semantics of a class type.   If the mangling for the 
type are different based on how they are implemented, it removes a lot 
of flexibility from this choice.

PremAnand.

Michael Wong wrote:
> Absolutely not. That would be silly even to me.
> I want to settle the mangling chosen for the native type for platforms that
> can support it. I am not saying there should not coexists different
> manglings for class types and native types.
> What Mark wanted, I believe was a rationale to explain why there  exists
> both types and their mangling and that is what I am seeing a convergence
> here in this discussion, for which I am glad.
> The point is that for platforms that support native types, the native type
> mangling is available for a potentially more efficient implementation. For
> platforms that can only support emulation, the class library type and its
> mangling is available. Have I missed the point?
> 
> What I was hoping to ask was if people are sufficiently happy with this
> state so that I can write up the mangling addendum proposal?
> 
> Michael Wong
> XL C++ Compiler kernel Development
> IBM Canada Ltd., C2/KD2/8200/MKM
> 8200 Warden Avenue
> Markham, Ontario  L6G 1C7
> W:905-413-3283 F:905-413-4839
> Boost test results
> http://www-1.ibm.com/support/docview.wss?rs=2239&context=SSJT9L&uid=swg27006911
> 
> C/C++ Compilers Support Page
> http://www.ibm.com/software/awdtools/ccompilers/support/
> C/C++ Feature Request Interface
> http://www.ibm.com/support/docview.wss?uid=swg27005811
> XL Fortran Compiler Support Page
> http://www.ibm.com/software/awdtools/fortran/xlfortran/support/
> XL Fortran Feature Request Interface
> http://www.ibm.com/support/docview.wss?uid=swg27005812
> 
> 
>                                                                            
>              Sean                                                          
>              Perry/Toronto/IBM                                             
>              @IBMCA                                                     To 
>                                        Michael Wong/Toronto/IBM at IBMCA      
>              08/20/2007 09:28                                           cc 
>              AM                        cxx-abi-dev at codesourcery.com,       
>                                        Dennis Handly <dhandly at cup.hp.com>, 
>                                        premanand.rao at hp.com                
>                                                                    Subject 
>                                        Re:  Fw: [cxx-abi-dev] Decimal      
>                                        Floating Point mangling was(Fw:     
>                                        [cxx-abi-dev] C++0x: Mangling of    
>                                        rvalue reference type)s             
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> Are you trying to say that the C++ class type shall be binary compatible
> with the C native type?  That is going to fail immediately on parameter
> passing and return values.  And if we say that, then someone can throw a C
> native type and catch it as the C++ class type.  Similar odd behaviour
> would happen with dynamic casting.  The fact is that we have two different
> types because C++ choose to implement decimal floating point as a class.
> We need two different mangling schemes.
> 
> --
> Sean Perry
> Compiler Development
> IBM Canada Lab
> (905)-413-6031 (tie 969-6031), fax (905)-413-4839
> 
> 
> 
> 
>              Michael
>              Wong/Toronto/IBM
>                                                                         To
>              08/20/2007 08:23          Dennis Handly <dhandly at cup.hp.com>
>              AM                                                         cc
>                                        cxx-abi-dev at codesourcery.com,
>                                        premanand.rao at hp.com, Sean
>                                        Perry/Toronto/IBM at IBMCA
>                                                                    Subject
>                                        Re:  Fw: [cxx-abi-dev] Decimal
>                                        Floating Point mangling was(Fw:
>                                        [cxx-abi-dev] C++0x: Mangling of
>                                        rvalue reference type)s(Document
>                                        link: Sean Perry)
> 
> 
> 
> 
> 
> 
> 
> 
> 
> I believe one of the point of an ABI is to settle on one type where there
> are ambiguity or possible differences in choices. Otherwise, it is not an
> ABI and there would be no interoperability.
> So I agree with Dennis that having both types would be confusing. I have no
> problem putting forward a case in the ABI document to support the native
> DFP type choice. In fact, I believe this was one of the thing that Mark
> Mitchell had asked me to do after coming up with a mangling scheme. I am
> somewhat glad that we have converged to that same point of view.
> 
> Is this agreed?
> 
> Michael Wong
> XL C++ Compiler kernel Development
> IBM Canada Ltd., C2/KD2/8200/MKM
> 8200 Warden Avenue
> Markham, Ontario  L6G 1C7
> W:905-413-3283 F:905-413-4839
> Boost test results
> http://www-1.ibm.com/support/docview.wss?rs=2239&context=SSJT9L&uid=swg27006911
> 
> 
> C/C++ Compilers Support Page
> http://www.ibm.com/software/awdtools/ccompilers/support/
> C/C++ Feature Request Interface
> http://www.ibm.com/support/docview.wss?uid=swg27005811
> XL Fortran Compiler Support Page
> http://www.ibm.com/software/awdtools/fortran/xlfortran/support/
> XL Fortran Feature Request Interface
> http://www.ibm.com/support/docview.wss?uid=swg27005812
> 
> Dennis Handly <dhandly at cup.hp.com> wrote on 08/17/2007 09:19:44 PM:
> 
>>> From: Sean Perry <perry at ca.ibm.com>
>>> Yes, the native type and the standard class are different types.
>> Then this may cause conflicts between the vendor's compiler and the
> foreign
>> devil compilers if they try to interoperate and each does it differently.
>>
>> I suppose an extern "C" interface would work to get around the mangling
>> issues.  At least for decimal.  Complex may have other issues.
> 
> 
> 
> 



More information about the cxx-abi-dev mailing list