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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] `readability-braces-around-statements` false positive with variable template lambda
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy,
            false-positive
      </td>
    </tr>

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

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

<pre>
    Consider:
```c++
template <bool B>
inline constexpr auto foo = [] {
    if constexpr (B) {}
};

void bar() {
    foo<false>();
}
```

Expected behavior: No warnings, because every statement already has braces around it

Actual behavior ([Godbolt](https://godbolt.org/z/4oazMvx37)):
```
<source>:3:21: warning: statement should be inside braces [readability-braces-around-statements]
    3 |     if constexpr (B) {}
 |                     ^ 
      |                      {
1 warning generated.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMU82OozwQfJrm0kpkbEzIgUN-hu_07XXPbTDBKwdHtslM5ulXJr-KtNJEVgC7XN3V1U0hmMOodQ1yC3Kf0RQH5-uGlKHxt7N9nynXXeqdG4PptAexAbYHtoGSXVcLfJvWvBv18WQpagSxU85Z3IL4uB6Z0ZpRY-vGEPXXySNN0WHvHILY4zU8wupGhIho-hc08GoLfD0jVvtbDqs9iNuF6__ZmQ4VeeDVHfyg650DsevJBp2SmhHP6w_Ou65X2o-vk26j7lDpgc7GpTLgL4ef5EczHgLwHSrd0hQ06rP2FwyRoj7qMSJZr6m74EABladWByTvprFDE19jbNo4kX1ESIJBbv9znXI2gtwDr4YYTyE5wBvgzeF6tHT-ALz5Bt4Ujr7_P3-JVVKWxL17dfsUu-Am385lEBsBYsPzpOgmJ70-8w-Dm2xSjmZugbsIkNskjJSxJl4W193FVdricT2kzB8WCITVDn_k7QP5_gP5gU9G_CfuaX5-F4YHPWpPUXfLt8JkXS26tVhTpuu8XOeSFzKvsqGuWFG07ZrkipVK9mpVdqViJbW5Kop1rzNTc8YFq1iVr6XMq6WgohUlK0RXFEySgoLpIxm7tPZ8TGZlJoRJ12UhC5lZUtqGefo4by2Nh0U03QU4B74Dzud2XZxcMNGcddqW-8zXiWuhpkOAglkTYniyRxPtPM4vbGmySvYju0qGc0y8x8RPEwc8kzekrMbHhFs6qo6yydv6rS9NHCa1bN0ReJPSuj0WJ-_-6DYCb-YKBODNXIS_AQAA___4qFTZ">