<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57128>57128</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Improve clang-tidy cppcoreguidelines-init-variables to not warn when the variable is initialized on all branches
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
sean-mcmanus
</td>
</tr>
</table>
<pre>
Use clang-tidy (14.0) on code like
```cpp
bool mmm(bool bb1, bool bb3) {
bool bb2;
if (bb1) {
bb2 = bb3;
} else {
bb2 = !bb3;
}
return bb2;
}
```
with check cppcoreguidelines-init-variables . (I could provide a command line if you need one, but I assume it's not needed).
For reference, the TypeScript compiler is able to handle this, i.e. no error occurs with the code below
```TypeScript
function mmm(bb1: boolean, bb3: boolean) : boolean{
let bb2: boolean;
if (bb1) {
bb2 = bb3;
} else {
bb2 = !bb3;
}
return bb2;
}
```
, but it appears if one of the branches omits the initialization:
![image](https://user-images.githubusercontent.com/19859882/184457755-1b23c6f2-1ecf-4829-9444-74ec2bb00869.png)
If this is hard to determine 100%, maybe the common cases could be handled?
The workaround is to initialize on the declaration line.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzVVM2OmzAQfhq4WCAwEODAYbdRpJzbPoBthuCuwcg2G6VP37FJsmzVqudGUWJ7_uf7Zrjub913C0QoNl8SJ_sbiWiTl2kW0ZbomQjdA1HyDaLsGGUv0SHbvmJZtheutSLTNKFZOHKeR_QLuZ8L7yaqXzddgp-7gEbF7lEOPmww_U09mHBKouIY3O2tovpIQGH2f7WIaP4Ho4-LAbea-VM6T_mz1O16lW4kYgTxRrB2oQ1cVtmDkjPYRM7SJe_MSMYVWJL6as7Yu1X1ZDH6HRUJw_s0sbkn3saXfNMrmQF67DOEnq2OnAmzdp1Q7iJaWzJrF3Sgx9ak98zC70kbzH8AA7MI5m4E8u22wFdh5OJ8tEUqMERa4tMiTpMRw_vTKK23kCmkGIGAMehMC7EaS0Kh3leAnoPS133YZ1t2ofbyYZ2Fk8icOycQ0-IloA5sDlV6QHYvCPjuukdSgdug-RD_Z6R5oCodYcsCDNuLWSPcRA-hx9ywGUlliZ6ks-HJc0kyJX8y30Ys_uEqj6pXObELRNURCx-dW6wX0xN-VwsmCVKbXhDBlfsXoWcHs0uRC6iTt03VNg31x6Ysq7quqiTntBCHgSY5iCEpG9ombVmWSV2CoJxnWXNo02W-YJP3MJ-HwCJPrpGZ3pOrBwdm8tzOM1wflS9-YjcOdzZNk98nzGK122SgZCNkHxWnvfNvqH_V5o0ZveK8YAx0_-wL-L3kXfaAa8uENoWZuo9HDF1-OGRF2RR1Efdd0bdFy2InnYLuPPl5_LTw_jnOGNyP4ZUh6tcRtuAPsc_uIzU_y4Qp9QQ2Xo3qPkO1wXPHRKn3x1-Cmf0AgXN_krgDAEf0VNU5beKxo7xsKtpQWpZDP_DsQAUwfoBsaFlzGLJYMZxU2yFFkB2x7GhGadbklBYVrWhaD8XQN3nBiqESRUmjMoOJSZX6wKk2l9h0IQe-XiwKlbTOfghxJ8kLrqGHf7a6UZvO4kgmk8Cltto45NyFhH8BTAbklg">