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