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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Dangerous warning cppcoreguidelines-pro-type-member-init
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          chrchr-github
      </td>
    </tr>
</table>

<pre>
    ~~~
struct S {
    int a, b;
    void init() { a = 0; b = 0; }
    explicit S(int i);
};

S::S(int i) {
    init();
    b = i;
}
~~~
~~~
<[source>:9:5: warning: 'b' should be initialized in a member initializer of the constructor [cppcoreguidelines-prefer-member-initializer]
    b = i;
~~~
Blindly adding a member initializer for `b` will cause a bug, since `init()` will overwrite the value.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U0uSozAMPY3YqEgZO0BYsEiayQX6BMYW4CkHp_xJT2bRZ5-CTD491bOBV6qnpyfJkiGYcSZqoTxA2WUyxcn5Vk1eTT4fTZxSn_VOX9vPz09gHbB9iD6piO8I9eEWQUQ0c0QJ_A17EC_hizMazWwi8B3wZslBiSA6ZCAO2D8h1N0zjX6drVEm4jvw3SJtgDcP4YX6wOv3HcQexP6V_a-9u4Uv9m71zRflFTy6fQAQb1AegkteEYgfIPYNiH0JYo8f0s9mHhcIvO6B1xgml6zGntbKRlrzm5ZBoMQTnXryL3GPbsA4ESo334brPEJ5UOezcp7GZDRZM1PIz54G8vlNIX9RgLL7f1OPFg7WzNpeUWpt5vF7K8NSu2I9VAw_jLWoZAqEEvs0LusNZla0MF4meqe6C_kPbyKt3VykTbTJdCt0IxqZUVtUdV3v6qrZZVPbiL5QqhC80lToQaimHETDOds2Ayk2ZKbljAsmGOeM7YrdRivdbIWutlLVbMs4bBmdpLEbay-njfNjZkJI1FZFIYrMyp5suL9r3y6kvE9jgC2zJsTwTIsm2vUClJXzmEejr1B22Ml5JO9SuC8Yv9uIy-P1TK87yZK37RTjOSyvkh-BH2-HtFHuBPy41P37W_J_korAj6v3APy42v8TAAD__9YPF04">