<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/63864>63864</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Forming mixed locale names is unimplemented for locale constructors
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc++
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          jakeegan
      </td>
    </tr>
</table>

<pre>
    Locale names formed from parts of two named locales (that is, C++ locales having names) are supposed to have names in turn (see C++20 subclause 28.3.1.1 [locale.general] paragraph 8). The simple cases (such as two locales with the same name) are handled [here](https://reviews.llvm.org/D119441) , but the cases for mixed locale names isn't implemented yet. 

To form mixed locale names, we need a thread safe, C-level way to retrieve the locale name. Some platforms, such as AIX, lack this capability, so a request to POSIX was posted [here](https://austingroupbugs.net/view.php?id=1741). Once this is resolved, the function build_name can be extended to handle mixed name cases. See: https://github.com/llvm/llvm-project/blob/main/libcxx/src/locale.cpp#L132
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVMGK3DgQ_Rr5UsS0ZXe3ffBhJo0hEMhCcshtKcnVthJZ8qqk7pm_X2RPz2YhLOylG1HlV--9ehIym8kR9eL4LI6XAlOcfeh_4E-iCV2h_Pjaf_YaLYHDhRiuPiw0wjX4BVYMkcFfId79Vh7Bbr0MQrZxxgiGhfwIH4V8FvL5vTrjzbhpRxSyAwwEnNbVM40Qfa4_5hkHMQWXAZnogSQPwElpi4kJZFvWZVVWII7P-4RyIkcBrTheMkmcAq4ztEJ2JXybCdgsqyXQyDtVTnoG5E3Hg-PdxBlibsZlJ_NgOqMbLY153EyBxPEiZDvHuLKon4QchBwC3QzdubT2tpQ-TEIOl6rqmqbKINkSleKGvnO4-gCLeXk38CGenZDnCBvdhVykEV4pliAOF3F42n-_-W0pv_k-z7kTOKIREOIcCEdgvNK2kw-WbmThjq_Z8kAxGLrRRuoXkBK--oVgtRjzlA3zYdfTp-_5aFH_hDgbBo0rKmNNfN3aPCAE-isRxzzijy9fP32HOzKsnuN_G4iJo3FT8GlVaeLSURRyyKaW67yKejCjqC_VeTO0hC9O007BMARib280Zg5ZzTU5HY13oJKx459ZFWh0oAjoJZIbH6HLa32z8a2JiUv4SiTqJ_g3wcnEOalS-0XIIa_57e_DGvwP0pmtsl4JOSxoXC4apV9ehBw46Hzcg6rXVcj6c1XLYuzrsas7LKivTm1XN6emkcXcK61aiW0t9ZlUXVW1rLrzkehE6npVXVuYXh5kfThXTdUcm4MsW9XVNJ7aSp26RkoSzYEWNPY9joVhTtSf6vbUFBYVWd5eACkzy_2KCSnzixD6TVVegmgO1nD8J9VFNNFSP_iw5Ov82wBDcr-mNwf9rUN7xzEkHX3gIgXb_2-DNxUs5LAJ-TsAAP__FuGWfQ">