<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hello,<br><br>I'm having a strange problem with my clang tool and I would like to report it because maybe I'm doing something wrong, but it might be a bug. <br><br>My tool simply takes a source file, performs a change in the code and saves the new version. The program is under the version control system git and the new version is stored in a new git branch. This process is done a finite number of times and I reset the Rewriter object between a version and the next one (so that the change is not present in the rest of versions) in the following way:<br><br>Rewrite = Rewriter();<br>Rewrite.setSourceMgr(Context->getSourceManager(), Context->getLangOpts());<br><br>Everything seemed to work right, but the other day I tested my tool with a program and I found something really strange. The problem is that the first and only the first change performed in the code remains in all the following versiones. For instance, if I insert a comment in each of the lines:<br><br>Original:<br>int method(int a){<br>    int b = a + 1;<br>    return b;<br>}<br><br>First version:<br>/*1*/ int method(int a){<br>    int b = a + 1;<br>    return b;<br>}<br><br>Second version:<br>/*1*/ int method(int a){<br>/*2*/      int b = a + 1;<br>          return b;<br>}<br><br>Third version:<br>/*1*/ int method(int a){<br>          int b = a + 1;<br>/*3*/    return b;<br>}<br><br><br>The problem is that the comment "/*1*/" should be only in the first version, but not in the rest. As you can see, "/*2*/" is not in the third version and that is the expected.  <br><br>I have tried a lot of things, but nothing seems to solve this issue that only appears in this and other program that I tested today.<br><br>What could be happening here?<br><br>Thanks in advance.<br>                                           </div></body>
</html>