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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] Incorrect suggestion for readability-simplify-boolean-expr
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

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

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

<pre>
    Reproducer: https://godbolt.org/z/cKfnavMvb

```
#include <string>
#include <iostream>
struct Foo {
    std::string appName;
    int maxCopy;
};

int main()
{
    std::string app;
    Foo fileMeta;
 int maxCopy;
    bool x = !(app == fileMeta.appName && maxCopy == fileMeta.maxCopy);
}
```

clang-tidy shows:

```
<source>:13:10: warning: Value stored to 'x' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
   13 |     bool x = !(app == fileMeta.appName && maxCopy == fileMeta.maxCopy);
      |          ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:13:10: note: Value stored to 'x' during its initialization is never read
   13 | bool x = !(app == fileMeta.appName && maxCopy == fileMeta.maxCopy);
      | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<source>:13:14: warning: boolean expression can be simplified by DeMorgan's theorem [readability-simplify-boolean-expr]
   13 |     bool x = !(app == fileMeta.appName && maxCopy == fileMeta.maxCopy);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | !                         ||         !=
2 warnings generated.
```

But it should be `app != fileMeta.appName || maxCopy != fileMeta.maxCopy)`

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzElUFv8zYPxz8NcyESyFQd1wcf3KQBXrzoDhsw7CpbjKNBkTxJ7tP0sM8-yEmeds3Ww7ZnM4zElsQ_yZ9oUcVoBsfcQPkA5XahpnTwodkcJuV-MT9N9aLz-tR8z2Pweuo5gGzxkNIYQbZAO6Dd4HXnbVr5MADtXoF2_f_3Tj0_PXcg2nyvxeUWLZA0rreTZgS5iSkYN4B8vJkxPqbA6nieiylMfcKd9wjVA4gWETEmnWOQ7VkF1Th-p44M8rrAuIRH9bLx4-k8CNX28iDa86RxQPdA9Tz5ifCbaI5hbyw_cVKX0Rs_eV3nvcUXBLlFoALoXo1jfssDV_vVJWQEWgOtryI3y67iVL_l8QGraHur3LBMRp8wHvyXeX9u8ctN9FPoOXOVbSHzj8h7-kUFN-9Fiz8qOzHG5ANrTB6BqhegCvU04zAponEmGWXNq0rGOzQRHT9zwMBKI5QP52CUU_b0ymGpWenea15tWekfsnCEcnsmVUiEaoPfmtns4Kun80v5iL_-1etTmM4n_gdI_g7QvwPnmzC5-1BgORVWDvllDBxjzrtXDjvGaI6jNXvDGrsTbvnJh0E5oCpiOrAPfMzVldmozliTTsuLxWl5EV1m0f-uuKB8_Bv03ulQgX92QbV5X8c5G5nzpSvjiAM7DiqxXt0eFA9TQpPyITFZnaHDWswsZp0_YHF295XFh2XvWMweFrqRupa1WnBTVGshZUl3tDg0JDXvmUTdsS7qStZ1zz1RL0Slu_W-XpiGBJWFKKRYC3FHq0IVTER7VuW6vK_3cCf4qIxdWft8zP1mYWKcuCnWsqD7hVUd2zh3MqK34xCIcmcLTbZadtMQ4U5YE1N800km2bkHvjMrt_g_1_sQuE8Yp2HgOH-ie3_-Oj-twMUUbPOhT5p0mLpV749Au-z58rccg_-Z-wS0m9OJQLtLRs8N_RYAAP__qKxltA">