<div style="font-family: arial, helvetica, sans-serif"><font size="2"><div class="gmail_quote">On Mon, Jun 25, 2012 at 11:51 AM, Stephen Kelly <span dir="ltr"><<a href="mailto:steveire@gmail.com" target="_blank">steveire@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Philip Dunstan wrote:<br>
<br>
> Hi,<br>
><br>
> I've been trying some source to source transformations using the<br>
> matcher/callback framework in the tooling branch. They are mostly working<br>
> but I have a couple of questions and would like some feedback on whether I<br>
> am doing everything as intended. Will you please help me?<br>
<br>
</div>Hi Philip,<br>
<br>
I'm in the same position as you, having used the tooling API and had some<br>
feedback:<br>
<br>
<a href="http://thread.gmane.org/gmane.comp.compilers.clang.devel/21996" target="_blank">http://thread.gmane.org/gmane.comp.compilers.clang.devel/21996</a><br>
<br>
I also just published a follow up blog post:<br>
<br>
<a href="http://www.kdab.com/assessing-the-automatic-qt-4-to-5-porting-tool/" target="_blank">http://www.kdab.com/assessing-the-automatic-qt-4-to-5-porting-tool/</a><br>
<div class="im"><br>
<br>
> There are two transformations I am trying to make: adding the override<br>
> keyword to virtual functions where we can and replacing shared_ptr by<br>
> value function parameters with const references. I have attached the two<br>
> cpp files to this post. They are also available from<br>
> <a href="https://bitbucket.org/phildunstan/clang_tools/src/5d63a291d377/add-
override-specifier" target="_blank">https://bitbucket.org/phildunstan/clang_tools/src/5d63a291d377/add-<br>
override-specifier</a><br>
> <a href="https://bitbucket.org/phildunstan/clang_tools/src/5d63a291d377/replace-
shared_ptr-parameters" target="_blank">https://bitbucket.org/phildunstan/clang_tools/src/5d63a291d377/replace-<br>
shared_ptr-parameters</a><br>
><br>
<br>
</div>At least the override one seems to be generally useful. It's starting to<br>
look more likely that a repo for things like this (and some of the generic<br>
parts of my work such as method renaming) should be in a shared location in<br>
the clang tree (possibly just in an example).<br></blockquote><div><br></div><div>Yep. Perfect for the examples section, methinks.</div><div><br></div><div>Cheers,</div><div>/Manuel</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">
> I'd like to run these tools over our complete code base where the changes<br>
> will affect both header and source files. What is the recommended way to<br>
> limit changes to only my files and not system header files? I expect I can<br>
> limit them to the main file specified by the source manager, however I<br>
> assume that this would prevent changes to my header files.<br>
<br>
</div>The approach I took was to specify the top of the source tree manually as a<br>
command line argument and then try to verify that I only change files in the<br>
correct paths.<br>
<br>
Thanks,<br>
<br>
Steve.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></font></div>