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

    <tr>
        <th>Summary</th>
        <td>
            clang++: wrong error about non-const member
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    ```
class A {
    static const char *aaa = "aaa";
};
```

clang++:
```
cstr.cpp:2:24: error: non-const static data member must be initialized out of line
    2 |     static const char *aaa = "aaa";
```

This error is absolutely wrong
and misleading. I had to use gcc
to get a clue:

g++:
```
cstr.cpp:2:24: error: ‘constexpr’ needed for in-class initialization of static data member ‘const char* A::aaa’ of non-integral type [-fpermissive]
    2 |     static const char *aaa = "aaa";
```

Perfectly clear and valid msg.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysk8_OmzoQxZ9m2IwSGRNCWLAgNzfS3d1FX2CwB-LK2Mg2adOnr5zQfv2qblpVMsLiz_GZ35mhGM3kmDuoz1BfClrTzYcuprgUg9ePDo5iW6JXlmLEHqE5g-gREWOiZBQq72JCdaOAIHsiQqguCFISEUgJVf4emsu2-UHypeomkOe8qv6n9yqmsFfLAlUv83WAqkcOwYe8cd7tXmdvRjQlwpnngQPOa0w4MBpnkiFrvrBGvyb0I1rjeKtAIjT_4G_X8r6EDzcTX67QRKQhersmtg_8FLybQPTkNM4mWiZt3LTH__BGGpPHNTJOSoHok8eJExIqu_IGQvR_CAb-lXAS0J6e1fDnJXx70qJj1qxxzGbd7pXpd0aUjHcZ0S-Avhd9IgLZY5_NVZnU2xl-fGZjXOIpkMX0WBihPu_GhcNsYjR3hvryNzP4n8PIKtkHKssUMCO_kzUa5zjtC91Vuq1aKrgrm0N9qtq6bYtbV58GOTRNPUquBzE2JTfipKuxLEWl5UEVppNC1uIgT2Upj1W7l1oJomEYj8d6bLiCg-CZjN1be5_3PkyFiXHlrqyaY9kWlga28TlfUm69LvOohS7_sBvWKcJBWBNTfJNIJlnu3o_Gq5u2PqMh9_LbALwyKtZgu1tKS8yhyCvI62TSbR32ys8gr1l_u-2W4D-ySiCvT78R5HWzfO_k1wAAAP__BO46zQ">