<div dir="ltr">I just uploaded the code to pastebin:<div><br></div><div>DeclarationTransformer: <a href="http://pastebin.com/GpzpJGiz">http://pastebin.com/GpzpJGiz</a></div><div>VariableDeclaration: <a href="http://pastebin.com/SPMNJvkY">http://pastebin.com/SPMNJvkY</a></div><div><br></div><div>DeclarationTransformer is a Matcher/MatcherCallback and VariableDeclaration a helper struct. <br></div><div><br></div><div><div>    DeclarationTransformer declarationTransformer(context, rewriter);</div><div>    declarationTransformer.doTransformation();</div></div><div><br></div><div>I am using this in a bigger clang-tool that I am writing right now and thus there are still TODOs and work to do. But I think this should help for now. Furthermore, it is only used for C-code. So auto and co. won't work (I think) since it is not been tested for C++ at all.</div><div><br></div><div>Here an example before (<a href="http://pastebin.com/M6Qkwbgi">http://pastebin.com/M6Qkwbgi</a>) and after (<a href="http://pastebin.com/9jAQGd5Q">http://pastebin.com/9jAQGd5Q</a>) transformation. And of course, I will appreciate any improvements.</div><div><br></div><div>Best,</div><div>Firat</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-12-16 0:00 GMT+01:00 Piotr Dziwinski via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 15/12/15 21:10, Richard via cfe-dev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
[Please reply *only* to the list and do not include my email directly<br>
in the To: or Cc: of your reply; otherwise I will not see your reply.<br>
Thanks.]<br>
<br>
In article <<a href="mailto:56708712.6050402@gmail.com" target="_blank">56708712.6050402@gmail.com</a>>,<br>
     Piotr Dziwinski via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> writes:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks, I could use your code. My checker only handles local variables<br>
declared in functions so that parser or transformer doesn't have to work<br>
for globals necessarily.<br>
</blockquote>
I remember now that I was looking into this for a check that would<br>
split a multiple variable declaration into multiple single variable<br>
declarations.<br>
<br>
This would simplify your job of localizing variable declarations if<br>
you could depend on each variable declaration being a single variable<br>
declaration instead of a multiple variable declaration.<br>
<br>
With the suggestion made by Firat Kasmis, I should be able to write<br>
this check now, which would handle globals and struct/class fields.<br>
<br>
Thoughts?<br>
</blockquote>
<br></span>
Well, taking the assumption that all variable declarations are single declarations would simplify my localizing variables checker a great deal and make issue #1 obsolete.<br>
<br>
On the other hand, I worry about the decreased usability from the user's point of view.<br>
He would have to first run the checker that splits multiple declarations, applying its fixes everywhere.<br>
Only then, as a second step, he would be able to run the localizing variables checker, and use its fixes.<br>
<br>
I'm not sure if we want to go in that direction. As far as I know, so far there aren't any checkers that make such assumptions, generating such implicit dependencies.<br>
<br>
Best regards,<br>
Piotr Dziwinski<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</div></div></blockquote></div><br></div>