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
