<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/140632>140632</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Valid code fails with "reference to local variable declared in enclosing function"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Ignition
</td>
</tr>
</table>
<pre>
```cpp
#include <array>
#include <ranges>
int main() {
constexpr auto v = std::array{1, 2, 3, 4, 5, 6};
for (auto const& [t0, t1, t2] : v | std::views::adjacent<3>) {
}
}
```
> error: reference to local variable 'v' declared in enclosing function 'main'
Works in GCC 15.1
Error in clang 20.1.0
Works if you remove constexpr
[godbolt link](https://godbolt.org/z/7d3aW5Y4b)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8ks2O6zYMhZ-G3hA3kCn_xAsvnGRS9AV60aUsMY7uKFIgyZlOn75QkkGAXmAA49gw6e9Qh1Yp2cUzj9DuoD1Uas3nEMc_F2-zDb6ag_kcoROPS1-vICYgab12q2EEuVcxqk-Qb78VovILp2dFTNZnvCjrgbZAA0K_AzEhIurgU-Z_rhHVmgPeEOQBUzYgJ5DTA9_vaqA9UhFZpCnSFumgP4D8gp1CRKDtnXQHA3UI7S6L0pvvlEzQHhDkVLz6_cvrZvkjPW3NL6XZZ5B7WY7wmrjYiempX8GUZ_mGHGOIBRz5xJG9ZswBXdDK4U1Fq2bHCNTfgHo0rJ2KbNB6ZK9dSNYveFq9LsmXtkdc_SO_nyG-p9L7x36PdbupQUxvxa-80075BUls6o149Z7wM6wY-RJu_Ir5gYN2twQzB5fRWf8O7QFoe875eg-AjkDHZ30T4gJ0_Bfo2BupfrZ_NzPQUJlRmkEOquKx7pu-G0hsh-o89l0zkO6ZT_U8cNMYw0J1Q90Z0bNqTpUdSVAr2nogEjUNm2GmjmfdNE3fk24aaARflHUb526XYl_ZlFYe60Z0kiqnZnbp_scSef7AexWorLWKY_nox7wuCRrhbMrphck2Ox7_Us4a1MEwnpR1CT9sPiMQfbe177cFRNUa3fi_AG0-r_NGhwvQsQzxvP24xvCLdQY63kdPQMfn2W4j_RcAAP__o00Ujw">