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

    <tr>
        <th>Summary</th>
        <td>
            User-defined literals does not work, even with -Wno-error=reserved-user-defined-literal enabled
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    Trying to compile following code:
```cpp
#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <cstdio>

class MyString {
public:
    size_t sz;
    char* str;
    
    inline ~MyString(){
        free(this->str);
    }
    inline char* c_str(){
        return str;
    }
};

MyString operator "" M(const char* str, size_t sz){
    return MyString {sz, strdup(str)};
}

MyString test(){
    MyString s = "Qqqq"M;
    return s;
}
int main(int argc, char** argv){
    puts(test().c_str());
}
```
Compiling with only `g++` works fine with this output:
```
clang_literal.cpp:20:10: warning: literal operator suffixes not preceded by ‘_’ are reserved for future standardization [-Wliteral-suffix]
   20 | MyString operator "" M(const char* str, size_t sz){
      |          ^~~~~~~~
```
However, compilation with `clang++` gives error messages even with `-Wno-error=reserved-user-defined-literal enabled` enabled:

```
 >>>  clang++ -Wno-error=reserved-user-defined-literal -Wno-reserved-user-defined-literal clang_literal.cpp
clang_literal.cpp:20:10: warning: user-defined literal suffixes not starting with '_' are reserved; no literal will invoke this operator [-Wuser-defined-literals]
MyString operator "" M(const char* str, size_t sz){
         ^
clang_literal.cpp:25:14: error: no viable conversion from 'const char[5]' to 'MyString'
    MyString s = "Qqqq"M;
             ^   ~~~~~~
clang_literal.cpp:7:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'const char[5]' to 'const MyString &' for 1st argument
class MyString {
      ^
clang_literal.cpp:25:24: error: expected ';' at end of declaration
    MyString s = "Qqqq"M;
                       ^
                       ;
1 warning and 2 errors generated.
```
Yes, i know, that adding underscore fixes the problem, but i have really huge project, which does not use underscores for custom literals.
Is it a bug, or is there some another flag/workaround (except `-std=c++9`), that must be enabled to allow the code to compile with `clang++` same way as `g++` does?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVk9v47YT_TT0ZeBApiLLOviQxDF-v8MeirZY9BTQ5EhmlyK1JGWv97CfvRj9s71xgqZYQ1EokRy-mfdmRiIEXVnENcseWbaZiTbunV9HocSCp7OdU6f1H_6kbQXRgXR1ow1C6YxxR3opnUKWPrBkw5IHtkz6SzbN8Ian2krTKgSWPskQlcKSpc9vzRq9e3vWa1u9s1e782R3l0aEAJ9Ov3c7geWP_fum3RktJ9QAAEF_x5cI4TtLH89v5V54xh8gRH_1_jzS1miL8GM8hPEV48V0Egy_0iMyvop7HeYsfSZ7vLg2mW9eWR2Ply_dhpuWPcbW29cIR3M0GCf6-xQP16AX0XlgnDPO4RPjK-lsiFd-86eL4PwEYDj8MsK06Ik2qrZhfDV4egliQnaNJmKIN3yc5gOwdENQf_v69Svj_NOVv2MYXh-jbYRaaMv4iobCV5IQDi6Sl8JXh5-PbdoYiLAJ1N0lCRfcnd0Ztd8_PnWZQsCPOu7BWXMCtkwqxh_pWiZwdP5LgJKI7paQOMC1sWnj64SaBG2rF6MjemHuKMnSB56w9GFBNzgKb7sUeYBhzZnj0Jal_oYBrIvQeJSoUMHuBOyZs1XCitXLOCpAeASPAf0BFZTOQ9nG1iOEKKwSXunvImpngWWP88_DUfP-BJaddcwTYPkT_ELBQWdw-rHs-Uf_uxmu_7kjHrCz2BeuHnUXbSpSFM0zH5U-YAD03nmoMQRR0eMBzxvmn62bdwtYuhnjM28D-rlCIlLNx7ijFTuDiuyOw4nTW1CBSld3AVzggg8c2S19f8lr_XxQVpdWJ41dSStE4eMke8bzF8bzK0Gx9BGsm3YftTGg7cF9wSEFJpWQum75ESaR_VJp9YJ6JyQZheSe4jAw8kCOHDTxC9LZA_pAAiu9q8n1CwDZY0ageU5dlPH83C_yD9e6S7QAcJkAt2Dnwx_RQ60apLBKKxE7zCH6VvaBW8U9gq4bo6WOIF1zulzAeNER3Ls7-P7FuqP9oOv91Lln8CXNUZVZhK4-tzXa-H4H_7ds8Wu28FuDMqIiGBRSUmYEtApcCQqlEb4rEf-dEngtpbfmx_2LMcFAWAW8RxugQkuSRnV3s2D8hYHkrDsKaBT3IoJQigy1VqEP0nmEPjOJ2ca7ncGa1u7aCBr24kBZKYw5wb6tuhV_o4y04rjXcg_KDVndBrwwGjq2ZBuiq8c8DgPM_wfQEQTs2orsOA-6O566h6sRhHX0BKURFeNbaoLCu9YSJyv8JrGJXakNUbF0I_syWJDb1HcHN-s2RNjhWFpJWII-SDs_6Yv08lv1jXIfRI1wFCcQ4afGTF6zdDtT61QVaSFmuF7kSZoVWboqZvt1tsjKpbhPxOI-L3iiSinLNFvirliodJHnM73mCU8XnC8XPFvy_K5YFphlKOQyuy-kVOw-wVpoc2fMob5zvprpEFpc58u0uJ8ZsUMTug9yzi0eoZukwpZtZn5Ne-a7tgrsPjE6xHC2EnU0uP7zRpEOZy4p5BTJc2v7eF-btd6s9zE2gdoa3zK-rXTct7s76WrGt4Ro-DefVLXt_AiMbzs__wkAAP__8VjNMQ">