[cxx-abi-dev] need mangling for string literals and lifetime-extended temporaries used in static constexpr member initializers and for string literals in constexpr functions

John McCall rjmccall at apple.com
Fri May 24 21:31:41 UTC 2013


On May 24, 2013, at 1:10 PM, Jason Merrill <jason at redhat.com> wrote:
> On 05/24/2013 03:57 PM, John McCall wrote:
>> The requirement I'm complaining about is that arguably your
>> example is guaranteed to work even if get_sptr() is implemented
>> thusly:
>> 
>>   inline const char *get_sptr() { return "foo"; }
>> 
>> Because it's a string literal in an extern inline function and so it's
>> the same object.
> 
> Yes, and the ABI already specifies mangling for such a string literal:
> 
>  <local-name> := Z <function encoding> E s [<discriminator>]

Ah, so we do, thanks.

John.


More information about the cxx-abi-dev mailing list