<div>I added code just at the beginning of VisitBinaryOperator like:</div><div><pre style="font-family: "DejaVu Sans Mono";"><font size="2">bool VisitBinaryOperator(BinaryOperator *b){<br>    PrintingPolicy policy = PrintingPolicy(this->TheRewriter.getLangOpts());<br>    b->printPretty(llvm::errs(), NULL, policy);<br>    llvm::errs()<<'\n';<br>    if(b->isAssignmentOp()){<br>        handler.HandleBinaryOperator(b);<br>    }<br>    return true;<br>}</font></pre><pre style="font-family: "DejaVu Sans Mono";"><font size="2">The test code includes these lines:</font></pre><pre style="font-family: "DejaVu Sans Mono";">void setForceMethod(NbodyModel *theModel,int force_method) {<br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">    theModel->force_method=force_method;</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">}</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">void setTreeRangeCoefficient(NbodyModel *theModel,double coefficient) {</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">    theModel->treeRangeCoefficient=coefficient;</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">}</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">void setIntMethod(NbodyModel *theModel,int int_method) {</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">    theModel->int_method=int_method;</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei"; white-space: normal;">}</span></pre><pre style="font-family: "DejaVu Sans Mono";">expected output should include these assignments but I didn't find them in terminal.</pre><pre style="font-family: "DejaVu Sans Mono";">I tried `clang -Xclang -ast-dump -fsyntax-only mycode.c` and these assignments were printed out.</pre><pre style="font-family: "DejaVu Sans Mono";">The older version of this tool can get most of these assignments(7 out of 8) but after I added some code, all of them are gone. Does this problem have any relation to compiler? Or the memory layout was messed up by my code?</pre></div><blockquote formatblock="1" style="margin: 0.8em 0px 0.8em 2em; padding: 0px 0px 0px 0.7em; border-left: 2px solid rgb(221, 221, 221);"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">Are you SURE that the VisitBinaryOperator function is not being called? I</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">find that highly unlikely (considering that these visitors are quite</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">commonly used for all sorts of different purposes, and checking for</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">assignments isn't unusual by any means).</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">I would expect that the conditions INSIDE your function is what is causing</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">problems. Try adding some printout (or set a breakpoint in a debugger) at</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">the beginning of the function. I suspect the function is being called, but</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">the operands are not the kind you think they are in this case, so your</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">printout or "do stuff" isn't happening.</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">--</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"><span style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";">Mats</span><br style="font-family: "lucida Grande", Verdana, "Microsoft YaHei";"></blockquote><div><br></div><div><div style="color:#909090;font-family:Arial Narrow;font-size:12px">------------------</div><div style="font-size:14px;font-family:Verdana;color:#000;"><div><font face="幼圆" size="2">----</font></div><font face="幼圆" size="2">祝好!</font><div><font face="幼圆" size="2">詹石岩</font></div></div></div><div> </div>