Hi,

It seems that the ABI has no means to mangle the contents of string
constants.

The cxx-abi-dev archives have a proposal
http://sourcerytools.com/pipermail/cxx-abi-dev/2012-January/000032.html but
it seems this was never integrated into the ABI document.  Further, the
proposal doesn't specify how to mangle UTF-16/UTF-32 string literals.  Such
a mangling would have to specify the endianness used to encode the code
points.

At the moment, I am trying to figure out how we should mangle the string
constant in:
struct X {
  static constexpr const char *p = "foo";
};

We are required to give the storage for the string the same name in all
translation units in order to adhere to the ODR.

One idea I had was to treat it like a lifetime extended temporary but this
might break compatibility with existing programs.

Are there any preferences as to what should be done?

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

Reply via email to