<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">