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

    <tr>
        <th>Summary</th>
        <td>
            Crash on valid `shared_locks_required` with auto lambda and variadic template
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            crash-on-valid
      </td>
    </tr>

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

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

<pre>
    https://godbolt.org/z/Wa1oefazG
```
void l(int...) {
}
template < typename h, int... i >
void j(h k) {
  l(k(i)...);
}

void w() {
  int *storage;
  auto lambda = [](auto) __attribute__((shared_locks_required(storage))){ return 1; };
  j<decltype(lambda), 1>(lambda);
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtUsmS2jAQ_Rr5osIl5AV88IFlkk_I0dWyGiwQFpFkqJmvT9seMgNJlVxWb--97pZy-r3uYrwGlm2Y_EHn6LRyNqbOH8n6oO8XLB0e4OMnE3smNqwUn2cyb85obplcmz6macpkxdlq-5m62s-XiJerhYicZTse36_YwwV5x-SOz2XcUOjtG-KJEDt-foLjE8955CL_TMayV65vIHdKfUEgOs7kJkTn4Yh_qzmHITpu4aI0kJQ9Z8WWFXsCGAMjSNNAjN6oIWLTTMDr0IFH3VjXnkPj8fdgyBz9n-gkbz6rLfcYB9_zJVHyUesX84mGorG141yoeNYwFe7G9Lcn37_tPtaR6DrTVVZBEk20WO88hI67nt_A0iwo4_9yS8HvJnZPA4BeU5k3oE3LH8tLBm9fHwsVDipt3YUMa2-P3-Lq3QnbSKYJYcBAlyKvslXS1WWlSw2FysrlQQAqVEWxagvI8yqXB6wSCwptqMcFSNmOXSxcv5i6IActJTG1FFKKfFkKmYsiS8vy0GoU7RoLvcyUYrnACxibjmLGp5z4etKlhmOgoDUhhq8ghGCOPWI9Lz2hUXTO1_quLJizwWRqop46-AO7qvMk">