<div><br></div><div>> Careful with this; the body of a for-statement is also within the for statement:</div><div>><br></div><div>> for (int i = 0; i < 10; ++i) {</div><div>>   ++i, --i;</div><div>> }</div><div><div><br>Thanks. To solve this problem, i implement TraverseForStmt below:<br>   <br>     virtual bool TraverseForStmt(ForStmt *s) {<br>        if (!WalkUpFromForStmt(s))<br>            return false;<br>        m_inForLine = true;<br>        for (Stmt::child_range range = s->children(); range; ++range) {<br>            if (*range == s->getBody())<br>                m_inForLine = false;<br>            TraverseStmt(*range);<br>        }<br>        return true;<br>    }<br><br></div><div><br></div><div style="font-size: 12px;font-family: Arial Narrow;padding:2px 0 2px 0;">------------------ Original ------------------</div><div style="font-size: 12px;background:#efefef;padding:8px;"><div><b>From: </b> "Jordan Rose"<jordan_rose@apple.com>;</div><div><b>Date: </b> Wed, Jan 9, 2013 01:31 AM</div><div><span style="font-size: small;">Thanks</span><b>.<br><br><br><br>To: </b> "kevinlynx"<kevinlynx@gmail.com>; <wbr></div><div><b>Cc: </b> "Philip Craig"<philipjcraig@gmail.com>; "cfe-dev"<cfe-dev@cs.uiuc.edu>; <wbr></div><div><b>Subject: </b> Re: [cfe-dev] check an AST node's parent node ?</div></div><div><br></div><div>Careful with this; the body of a for-statement is also within the for statement:</div><div><br></div><div>for (int i = 0; i < 10; ++i) {</div><div>  ++i, --i;</div><div>}</div><div><br></div><div>Not familiar with the RecursiveASTVisitor traversal, so I can't tell you exactly how to do it. Maybe you already got this correct.</div><div><br></div><div>Jordan</div><div><br></div><br><br></div>