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

    <tr>
        <th>Summary</th>
        <td>
            -Wunused-private-field false negative with template instantiation
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            enhancement,
            c++11,
            quality-of-implementation,
            clang:diagnostics
      </td>
    </tr>

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

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

<pre>
    Consider code like:
```
template <typename Ty, typename Uy>
class C2 {
 Ty c; // no-warning
  Uy d; // warning
};

class [[maybe_unused]] Good {};
class Bad {};

C2<Good, Bad> c;
```
Clang fails to diagnose `d`: https://godbolt.org/z/qjE5sxqff

This was discovered during review of https://reviews.llvm.org/D159083, for more context.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsUt2uozYQfprhZkQENpBwwUUgJ32Bs-plNeCBeGvsHGySpU9fQaJsul0JYc3_930z5L0eLHMFeQ35KaI5XNxUHWlytiZjRrJR69RSNc56rXjCzilGo_9mkEdITpAcoUie32YGHq-GAiPIJixXtjQyfi4gGnyZ3xaQH4_0zpD32AiEff3w4OeCHcgaQZxBnNG6-E6T1XZ4xvHbguot4T9R2J9APju9T9gI1iMtLf8129mzgvwE-Qn_cE5tw98KHyU1_S_w-DcCZLPWraRqUiA_NsS_1aMxZAfsSRuPwaHSNFjnGaFI1Jokj3gJ4epXPTc-g1OtM2HnpgHE-R8Q56_vH7n_8dX37yA-L9rjnTwq7Tt344kVqnnSdsCJb5rv6PpfOj_8fmfMbXy2P6V5mRzkSqR3E45uYuycDfwj7CJVSVXKkiKu0qKUWZLnZRldqmwv-7Q_pPlBZG1SUJ73RZsXklqZdNT2ka5EImRykEmaiUKWu6xM0qzjfSrocNgfJGQJj6TNC0qkvZ-5KvI0TSNDLRu_3aQQbC9kOx7ZBhACRANCdCBqEHWavjxfMxkdltj1sR6vZkunoJ39WbPuAeTxuYCgO7_G8lM0VSuKuJ0HD1litA8_JYqCDoar-M_HzcTXSd8ocNxrNgp7Mp7R8kBB3xjvOlzwdf_a-kA26A1GNE-m-mXPOlzmdte5EcR5nfd84uvkvnMXQJw3UTyI86bLvwEAAP__XC4eJA">