<div dir="ltr">I think this post refers to the subject of the recent "Cross Translation Unit Support in Clang" thread, but I'm not entirely sure I understand the issue, so I'll start a new thread rather than potentially pollute that one.<br><br>So I've been working on a tool[1], based on libTooling, that automatically translates C code to SaferCPlusPlus (essentially, a memory-safe subset of C++). The problem I have, if I'm understanding it correctly, is that it can only convert one source file (which corresponds to a "translation unit" right?) at a time, due to libTooling's  limitation. Right? Does that make sense?<br><br>Ok, so converting a source file (potentially) modifies the file itself and any included header files as well. The problem is when multiple source files include the same header file, because conversion of a source file requires the included header files to be in their original form. They can't have been modified by a previous conversion of another source file. So after (individually) converting all the source files in a project, you can end up with multiple versions of a header file that were modified in different ways by the conversions of different source files. Right? (An example[2].)<br><br>So this means to get the final converted version of the header file you have to merge the modifications made by each conversion operation. And sometimes the modifications are made on the same line so the merge tool can't do the merge automatically. (At least meld doesn't.) This is really annoying.<br><br>Now, if libTooling were able to operate on the AST of the entire project at once this problem would go away. Or if you think the AST of the whole project would often be too big, then at least multiple specified translation units at a time would help.<br><br>I'm not sure if this is what's being offered in the "Cross Translation Unit Support in Clang" thread? I would want the Rewriter::overwriteChangedFiles() function to apply to all the source translation units of the AST as well.<br><br>Am I making make sense? Feel free to set me straight.<br><br>Noah<br><br>[1] <a href="https://github.com/duneroadrunner/SaferCPlusPlus-AutoTranslation">https://github.com/duneroadrunner/SaferCPlusPlus-AutoTranslation</a><br>[2] <a href="https://github.com/duneroadrunner/SaferCPlusPlus-AutoTranslation/tree/master/examples/lodepng">https://github.com/duneroadrunner/SaferCPlusPlus-AutoTranslation/tree/master/examples/lodepng</a><br><br></div>