Hi!<div><br></div><div>I'm working on a tool that do some source-to-source transformations of an OpenCL kernel mainly using the Rewriter class of the Clang C++ API. However, now I want to do some more complex transformations, and in order to do them I'd need to clone a ForStmt node of an AST and add its copy at the same level of the tree (i.e., I want to create a copy of the node and just after add it to the tree as a sibling node of the original ForStmt).</div>

<div><br></div><div>I know that I can do it very simply using the Rewriter class, but the cloning is just the first step of a more complex transformation that can't be done properly if I just rewrite the loop: I want to do some auxiliary transformations in the cloned loop and I need to access to its different parts using the ForStmt functions (GetBody(), GetInc(), GetCond()...).</div>

<div><br></div><div>In summary, and returning to the subject of this mail, is it possible to clone a node in an AST using the Clang C++ API?</div><div><br></div><div>Thank you so much in advance,</div><div><br></div><div>

Jorge.</div>