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

    <tr>
        <th>Summary</th>
        <td>
            [clang] false positive when doing simultanious pack expansion of capture and arguments in variadic lambda: `[-Wunused-lambda-capture]`
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          r-braun
      </td>
    </tr>
</table>

<pre>
    Consider the following example ([Demo](https://godbolt.org/z/vx61aWTWE)):
```c++
constexpr bool test(auto... vals) {
    return [... captured = vals](auto... args){
 return ((captured == args) && ...);
    }(vals...);
}

int main() {
    static_assert(test(0,1,2));
}
```
Clang trunk (`20.0.0` as of reporting this issue) emits the warning `[-Wunused-lambda-capture]`, even though `captured` is used in the simultanious pack expansion:
```
<source>:2:17: warning: lambda capture 'captured' is not used [-Wunused-lambda-capture]
    2 |     return [... captured = vals](auto... args){
      | ^
```

This doesn't happen, if only `captured` is expanded ([Demo](https://godbolt.org/z/ecYqYrq5a)), or `captured` is simultaniously expanded with `vals` instead of `args` ([Demo](https://godbolt.org/z/Y5GM4za6b)).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVEtv2zgQ_jXjy8ACNXr6oIMf8Z72ViDIaUFJtMUtRaok5ST99YuR7SZIg2KLAoRMmvP45ptvKEPQZ6tUA8UOisNKznFwvvHr1svZrlrXvzZ7Z4Pulcc4KDw5Y9yztmdUL3KcjEKgGordQY0OigNQPcQ4Bci2QEeg49n1rTMxcf4MdPwOdLy8lKl8_PL4ALThlW1BHEBsoRTX1QHteC3_ds6GqF4mj61zBqMKEaiWc3RJkuBFmgC0Qahu5oiIXsXZW4RixyadnOLsVY-QHa72C8p7BOnPHOEtwN2baqD6vTP736wRqAQqMUmSpYJ3yaHi6JznwyVfXDfLV9uIo9R2yfOhgBBl1N0_MgTludpb0QJonwLt6U7cT5HvDF6PeyPtGaOf7delnFKQSETCBigDuhN6NTkfuZlx0AF1CLNiNGrUMSztfpbe8j0HLXbrx9nOQfVrI8e2l-sbPcxoyehQXZTFOLj5PLDLnT7OqAOyK2q7BA56nE2UVrs54CS7r6heJmmDdvZnRdyO2T642XcKsgfItgTZNq0g295B8vYK7N50BKp-YKCKMVgXrzh-Xc6PXhBCtcc_lxVexbFHKB4-r275fuE-9E4FC1RFHOQ0KcvM6hM6a14_YXXhrWckvzmIqnv69uS_FfKmJ9qj858keN8q8_qW71nHpctL9WzKkyp7FhaUYmGgFL-N6qn46-_8uyzbK6pk1TdZv8k2cqWatMrSfEN1TauhEW0piKgrZFpt8krVguhEUtV1cdrkabfSDQnK0zTNUpHmOSVV3eZtJ2qVt6LPWwG5UKPUJjHmMjKE1TIBTZqWIi1XRrbKhOVlJOp4mICIH0nfsMO6nc8BcmF0iOEtRNTRLM_p1aM44EmaoHByQUd9Ufg8KIu946n6xRAwi3cVS9uzoOZR2Rh4gC7Sa9nr7iZ3Fv7_GNDV7E3zgX4dh7lNOjcCHbmE28968u5f1UWg40JJADreWLk09F8AAAD__8e93IM">