[cxx-abi-dev] Mangling "transaction-safe function"

Jason Merrill jason at redhat.com
Tue Sep 29 18:09:58 UTC 2015


The Transactional Memory TS introduces "transaction-safe function" 
types, which are distinct from non-transaction-safe function types, 
though the former converts to the latter.  So we need to represent this 
in mangling.

I think no change to mangling of actual functions is necessary, since 
functions that differ only in their tx-qualifier cannot be overloaded. 
So we only need to worry about function types.

One possibility for handling it would be to add a qualifier 'T' after 
the <ref-qualifier> at the end of <function-type>, but that complicates 
the ambiguity between these qualifiers and parameter types.

I think my preference is to make it a normal type qualifier, perhaps 
using "Dx", so void (*)() transaction_safe becomes "PDxFvvE".

We also need to add a __transaction_safe_mask to 
__pbase_type_info::__masks so that exception handlers can perform the 
transaction safety conversion.

Make sense?

Jason


More information about the cxx-abi-dev mailing list