<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/122480>122480</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-tidy modernize-use-default-member-init false negatives
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
nick-potenski
</td>
</tr>
</table>
<pre>
clang-tidy's modernize-use-default-member-init check will ignore constructor member initializers that either directly or indirectly use mathematical operations or casting. For instance, the following code only generates a warning for struct member `a`. Live example in compiler explorer here: https://godbolt.org/z/9E7Pv5jfa.
```
#define THE_ANSWER (44 - 2)
struct Bar {
Bar() : a{0}, b{1 + 1}, c{THE_ANSWER}, d{static_cast<unsigned int>(-1)} {}
int a;
int b;
int c;
unsigned int d;
};
```
```
[<source>:5:9: warning: use default member initializer for 'a' [modernize-use-default-member-init]](javascript:;)
4 | Bar() : a{0}, b{1 + 1}, c{THE_ANSWER}, d{static_cast<unsigned int>(-1)} {}
| ~~~~
5 | int a;
| ^
| {0}
1 warning generated.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzEVEtv4zYQ_jXjy0CGROphH3SQYhs9FEXRFuhxQVEjiQlFGiTlbHLIby9oK1knKNDeViAgznAe3zyF92o0RDUULRSHjVjCZF1tlHxKzjaQ8U9q09n-pZZamDEJqn8BVnmcbU_OqFdKFk9JT4NYdEhmmjtyiTIqoJxIPuGz0hrVaKwjlNb44BYZrMObJEZJJbR6JecxTCIgqTCRw145kkG_oI1CH9TiCWcRJppFUFJotGdyIihrfJSUwgdlxi3i6arngzCSgD1gmAgHq7V9VmZEaXtCa_QLjmSiAfIo8Fk4E18H6_AG9B0mlKmAMt0i_qouhPRdzGdNqAxKO5-VJof0_aytI4cTOQLe4BTC2QNvgJ2AnUbbd1aHrXUjsNMrsNP-WP1-KR4HsYW0iadM15M2wHhPgzKEf_1y_Nb89uffxz8Q2C7PMUEGbH9TWUG2wiFULaQNIkYK2A7YHiMKAVWbQnWIOeigajME1mK2ciRU7Q8PK7OHqvUh5vdbzCfwh8Vcu6RHZQLwI7BdkkUQ1eHqtzqsrpUJKIC3d2T3mZQreW8R-xsz2rld7jPxhSxa4A_eLk5SRMKbAnizj5Gu1YvX2CVrS_5Lo13rC6wSwCqEov3PVobiEA_bPYqL8NKpc4h15e2tEDG2HKF6wJ-cfvwA8f69vb29rY_Fx-OXKn3WguL4if-OP22yj_l4n5l-e1-dTV_zfs_3YkN1VvGyYHmZsc1U57kcUpbzktKyqrJ86He8y3Yl5-V-kDzfqJqlrEizLM2KoizYtii6nBUkSt7t03QgyFOahdJbrS9zHKGN8n6hOmMs36UbLTrS_rrCGLvfUyyuNFdHraRbRg95qpUP_oedoIKmu932P_baILQnNDSKoC7kN4vT9ZdZV2Fauq20M7BTdLX-krOzjyQDsNMVvwd2WkO41OyfAAAA___zLapq">