<br><br><div class="gmail_quote">Le 11 janvier 2012 10:11, Daniel Jasper <span dir="ltr"><<a href="mailto:djasper@google.com">djasper@google.com</a>></span> a écrit :<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<div><br></div><div>the attached change is designed to detect and warn about private unused members of C++ classes. It checks whether a class is fully defined in the current translation unit, i.e. all methods are either defined or pure virtual and all friends are defined. Otherwise, the private member could be used by a function defined in another translation unit.</div>

<div><br></div><div>An initializer does not count as "use", if:</div><div>- the member is a primitive type</div><div>- the member is a pointer</div><div>- the initializer does not take any arguments</div><div><br>

</div><div>Kind regards,</div><div>Daniel</div>
<br></blockquote><div><br>Hello Daniel,<br><br>it sounds like a fairly useful warning :)<br><br>I only have two comments regarding the patch itself:<br><br>> is it necessary to actually have UnusedPrivateFields and (Not)FullyDefinedCXXRecords as members of Sema ?  They could be passed (by reference) to IsRecordFullyDefinedInTranslationUnit which could then be marked `const` (unless I missed something)<br>
<br>> there is no test case<br><br>Nice patch.<br><br>-- Matthieu<br></div></div>