<div dir="ltr">Hi,<div><br></div><div>I have the following fragment of C code:</div><div><br></div><div>*--dst = *--src;</div><div><br></div><div>When I try to call my RecursiveASTVisitor on the LHS Expr (i.e. the *--dst part), the default TraverseStmt behavior seems to skip over the prefix decrement --.</div><div><br></div><div>When I do a Stmt->dump() on the whole LHS Expr, I get:</div><div><div>UnaryOperator 0x7ff4e38975d8 'char' lvalue prefix '*'</div><div>`-UnaryOperator 0x7ff4e38975b8 'char *' prefix '--'</div><div>  `-DeclRefExpr 0x7ff4e3897590 'char *' lvalue Var 0x7ff4e3883920 'dst' 'char *'</div></div><div><br></div><div>But when I actually call TraverseStmt() on the top-level LHS Expr above, after processing the first UnaryOperator (the one for the derefence, *), the next call to TraverseStmt() immediately returns only the DeclRefExpr.</div><div><br></div><div>My TraverseStmt(Stmt *S) contains only:</div><div>  bool TraverseStmt (Stmt *S) {<br></div><div>   return this->RecursiveASTVisitor::TraverseStmt(S);</div><div>  }</div><div><br></div><div>Does anybody know what TraverseStmt's default behavior in RecursiveASTVisitor is doing, and why it seems to jumping over the prefix -- node in the AST during the AST traversal?</div><div><br></div><div>Thanks!<br>Jiaqi</div><div><br></div></div>