On May 4, 2014, at 8:00 PM, David Majnemer <[email protected]> wrote:
> The Itanium ABI does not seem to provide a mangling for reference temporaries.
> 
> Consider the following:
> struct A { const int (&x)[3]; };
> struct B { const A (&x)[2]; };
> template <typename T> B &&b = { { { { 1, 2, 3 } }, { { 4, 5, 6 } } } };
> B &temp = b<void>;
> 
> The temporaries created by instantiating b<void> must be the same in all 
> translation units.
> 
> To satisfy this requirement, I propose that we mangle the temporaries in 
> lexical order using a mangling similar to what GCC 4.9 uses and identical to 
> what trunk clang uses.

What does GCC do?  I would prefer to not introduce another place where the end 
of the mangling is ambiguous, especially one ending in a number, since that’s a 
common way to generate “unique” function names.  (Or at least LLVM does it, and 
so I have to worry about it personally.)

John.
_______________________________________________
cxx-abi-dev mailing list
[email protected]
http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev

Reply via email to