<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/97365>97365</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang++-19: Incorrect warning `unused-private-field` even though member is used in constructor.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
greg7mdp
</td>
</tr>
</table>
<pre>
### test program: `Wunused-private-field.cpp`
```
// compiling this with `clang++-19 -Wall -c Wunused-private-field.cpp`
//
// produces a warning (even though `c` is used in the lambda)
// `Wunused-private-field.cpp:19:13: warning: private field 'c' is not used [-Wunused-private-field]`
// ----------------------------------------------------------------------------------------------------
#include <functional>
struct node;
struct cluster {
void ping();
};
void register_cb(std::function<void()>);
struct node {
node(cluster&);
private:
cluster &c;
};
node::node(cluster& c) : c(c) {
register_cb([&]() { c.ping(); });
c.ping();
}
```
### compiler output:
```
~/test ❯ clang++-19 -Wall -c Wunused-private-field.cpp
Wunused-private-field.cpp:19:13: warning: private field 'c' is not used [-Wunused-private-field]
19 | cluster &c;
| ^
1 warning generated.
```
### compiler version
```
~/test ❯ clang++-19 --version
Ubuntu clang version 19.0.0 (++20240630031615+ac84ada9a169-1~exp1~20240630151739.1777)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVktv2zgQ_jXjy0ACRdqUddDBjiOg9130WFAkI3NBPcCHm73kty8oyYmdTYsWC3QrCIJlDuf7vnlwJLw33aB1Dbsj7E4bEcN5dHXndFf2atq0o_q7BsqWG4P2ASc3dk70wA4InHyOQ_RaZZMzFxF09mS0VbmcJuAEyAnIYX1yst7LK22ANijHfjLWDB2Gs_H41YRzciqtGDqgR6DHrKgw-yysxUziD4DNfu8wJjeqKLVHgV-FGxIY0L2-6AHDeYzdggicoPGY3KNJKxqt6FslgFZ37vD7qtmhqNKDpfiseOnnaomzJQItJdAyIQ5jWFBhd8w-9Au70_u4Zb_gugIyM0gblUZgD09xkMGMg7DAHm_T64OLMuAwKg3s-MGKtNEH7RDKdRURL6NROKUA0X0K8-vG8vTOyWzpdGeSjy-yBbr3QQE7ADtcOQF7SGZXX493Ht-TvOMxs6b7lSJQfrt1TUXCutq_aqFcfof0EoxE8V8AKIFWmOpCpv_nlxtC90pTb1KeqmCWlixR5ndxw4R-QzqRzL8R2Q_b8ZrrtdGXvtQOxximGF7Ff7j5BWgznwzwSKE6waHBn25g_B0ueGxgT6Bii65f3uTX1BUpxw_4rUpbyS4Wb-R3a0MWr8dcpwftRNAq_7mkX7TzqaH-U8qz1cv_kskfvt6l_M82DiEuWq5hwKLKSU5wbqUkjxK6JZwRwgpe7IAehdxvhRKVKHiVFS_6eSperkbFrihZlRdlWb5Okj-E63RqKnze8y98m00ys2aIz1k3xNXk7LRQ2I9K27myRm-el6VPgw_CWq1Oxs1DmDbRO6CNNW162kufFRXQpjXDu-RtVM1UxSqx0XVRFtW-LAvCNue65G1LW02f1J7LquC8UoozQbecy7YSbGPqWVBJCsrYnrKcKCJIWZaa8a2uhIYt0b0wNk_4-ei6jfE-6roqGd9trGi19fNXBqVrpdD0weHqmW8bOw9bYo0P_s1DMMHq-r6wkuJPgxyd0zK8DXROPmwqTvB20Pe6b7W7nfNyHJapMLp8E52tzyFMPp1386DtTDjHNpdjv0b2GuDJjX9pGYA2s0wPtFmUXmr6TwAAAP__eVx_hg">