<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/105643>105643</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang compiles valid (?) program incorrectly
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
socketpair
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/z4szqa4rT
```cpp
#include <iostream>
#include <string>
using namespace std;
namespace {
template <class T>
consteval const char* type2str() = delete;
template <>
consteval const char* type2str<int>() {
return "int";
};
template <typename T, const char* Name>
consteval const char* fun() {
static constexpr auto mmm = string(type2str<T>()) + " " + Name + "\x00";
return mmm.data();
}
} // namespace
int main() {
static constexpr char ZZZ[]{"qwe"};
cout << fun<int, ZZZ>();
return 0;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMVMFy4yoQ_Bp0oeJCg2QrBx1i-_n4Tj7lhtDYZheEAiNvkq_fQlZsrZPaTZWQVMzQ090DqBjNsUOsWblm5TZTA518qKPXP5F6ZULW-PatPhH1kcknBjsGu6NvG29p4cORwe49jSK-v6gi7JnYMvE0vZfi8ui-n2ZAmk7boUXO5Mb4SAGVY_K_r8KRgumO1-AQTXfknXIYe6WRR2qZXM_r3WJs9UeA0PVW0YiqrYqR76-w2neR8KwsH_-4PqnA4InTW48QKTCoGDxyJre8RYuEd0Xn2N8HlRvTUUqf0D_48oA0hI4zgJQAcKu22v6lcgJO8vmeweau6P_K4T-ZHYbuExfOeSRFRl9y8bUPXA3kuXNuNGTqEFQzXfurqhEM1knLNNYjl49JVm5ehZhrTBUnA5xzi1aRmqDmLsx32GrL-WVP3nbGPMF0xJ0y39OWvODPz8-Xo5ByAV5-YWL4yfwEoP1Al7ZvRv8uTYXNiHF14W7dpE98IenjuGRtLdtH-agyrPMVFBJKUUJ2qvO2hSUoUIdiWWBZlm11ODRNvhJVJeUKM1ODgEJUAHmeixIWUlZ5tSxXbdtglQtghUCnjF1Ye3bp_GYmxgHrXJTLQmZWNWjjeBcAaKtScyFdC6FOCx6a4RhZIayJFG8QZMhivUnpXHvXG4uRn5U1LU8eyF2yvg_-GJTjptM-BNRk37Ih2PubxdBpaBbaOwa7VGD6PPTB_0BNDHYj4chgN3E-1_A7AAD__x7PYPI">