<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I didn't put a huge amount of effort into reviewing this, but here are a couple things I noticed...<br>

<br>
- How about putting a "Used" bit in FieldDecl, rather than keeping a separate SetVector? It's not like iterating over all fields is that much of a cost later.<br></blockquote><div><br></div><div>I like the idea. Anyone against it? </div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- IsRecordFullyDefined should probably use SmallPtrSetImpl, to avoid specifying a size in the function prototype. (Not that it /really/ matters, but...)<br></blockquote><div><br></div><div>But all the methods in SmallPtrSetImpl are protected!? </div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- You have an additional "NumArgs > 0" when marking a field used, and the for-loop should probably be in an else-case.<br></blockquote><div><br></div><div>Changed.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

- Don't use isa<> followed by dyn_cast<>. Just put the dyn_cast<> in the condition.</blockquote><div><br></div><div>Done.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
Jordy</font></span></blockquote></div><br>