[cfe-dev] overwrite rewritten text

Jonas Toth via cfe-dev cfe-dev at lists.llvm.org
Mon Dec 10 09:56:35 PST 2018


I am a bit puzzled of what you want to achieve.

AFAIK the change must be applied to the file and then the AST must be
recreated to get the new Source Locations, but if you `InsertText`
something and then `RemoveText` at the same location and same length
what do you intent to do?
For me this sounds like just replace a piece of original code with new
code. Otherwise that would be a no-op, not?

Best Jonas

Am 10.12.18 um 18:53 schrieb Kihong Heo:
> Hi,
>
> Thanks for your suggestion.
> But the result is the same.
> I noticed that It works as if the new string was not inserted.
> For example, “Loc” points to the location after the inserted string, and “Loc.getWithOffset(-1)” points to the location before the string.
> Is there any solution to sync up the mismatch?
>
> Thanks,
> Kihong
>
>> On Dec 10, 2018, at 11:38 AM, Jonas Toth <development at jonas-toth.eu> wrote:
>>
>> Hi,
>>
>> did you consider creating a Replacement instead of a Insert-Remove
>> combination?
>>
>> Best, Jonas
>>
>> Am 10.12.18 um 06:04 schrieb Kihong Heo via cfe-dev:
>>> Hi All,
>>>
>>> How can I overwrite or remove some code parts which were already rewritten?
>>>
>>> Here is my code:
>>>
>>> string S = …
>>> Rewriter.InsertText(Loc, S);
>>> Rewriter.RemoveText(Loc, S.length());    <=== Here, Segmentation fault.
>>>
>>>
>>> Thanks for your help!
>>>
>>> Best,
>>> Kihong
>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev


More information about the cfe-dev mailing list