<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/105558>105558</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang fails to compile correct program with consteval
</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/3o1G81ahn
```cpp
#include <array>
#include <iostream>
#include <ranges>
#include <string>
using namespace std;
template <size_t N>
consteval auto make_static(const string& str) {
array<char, N> arr;
str.copy(arr.data(), arr.size());
return arr;
}
consteval string foo() { return string("some dynamic data") + " 42\n"; }
int main() {
// WORKS:
// constexpr auto xxx = make_static<foo().size()>(foo());
// cout << (xxx | ranges::to<string>());
cout << (make_static<foo().size()>(foo()) | ranges::to<string>());
return 0;
}
```
Clang fails to compile correct (I think yes :) program. GCC works. UB ?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVF1vrDgM_TXmxSoCAwUeeJhhSrVaaVfa1WofqxAykDtAUBLamf76qzDfva2uVGmUQXZ8fGyfmBkj21GIApI1JBuPzbZTujCK74SdmNRerZpD0Vk7GYhWQBVQ1aqmVr31lW6BqnegKlLhcxayboRgA8HqdD4Gxx-fpjs7RXLk_dwIhKhkWrMDRE-f-aQyVgs2fOHWbGyF-cJprJZje3Uu52zk2OLIBmEmxgUa20C0vr1hxTD1zB4h5Lt4sfjXBYSr0Vjxynpks1U4sJ14MZZZyYGyxYmntPTovoByhPSEj4h4KrbkHdNA5QLtjBcSLsrnajoAZUxrv2GWAWVAubvuLI7U2ZJf4xBRCzvr8Q4O0s1tcVf-R5q4VeqI5WieAc4lZEBk1CCwOYxskByPZGi5TmsEIowJknJ0xmiNH7LJ0eLA5HjNcK8CJyX8_-9__vzXKevWiIhHqvtJH1u93-8Ros1dy6PyQv-2K9ETUHbx3DbpFn22bsIQlQiULehpiWdBrSBaWXUnol_Bzn3_gPUdht9Pfp5Z8MnIz8_vNqTsmRs7k71Bq5CrYZK9QK60Ftw6_n-g7eS4w4MwuLz4HCetWs0GH5_LEt-U3hkf_1sjRJXXFFGTRznzRBGmFNMjJUnsdQXlYrvNA0bbMM4CETYiTVmY5zWv-TbJhScLCigOMgrDNM7D2OeCsTjdUp2Hom62KcSBGJjs_b5_Hdyq8aQxsyjCIEmSzOtZLXqzrC0i7qpyIkw2ni5cwEM9twbioJfGmiuElbYXxW-acCoX36Tt8PJkvFn3H_egtN1c-1wNQJXLcfp7mLT6IbgFqhbOBqg60X4t6GcAAAD__9txlOc">