<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Thanks. I found <a href="https://github.com/llvm-mirror/clang/blob/f3b7928366f63b51ffc97e74f8afcff497c57e8d/lib/CodeGen/MacroPPCallbacks.cpp#L178">https://github.com/llvm-mirror/clang/blob/f3b7928366f63b51ffc97e74f8afcff497c57e8d/lib/CodeGen/MacroPPCallbacks.cpp#L178</a> and I think this logic is what I need :) </div></div><div class="gmail-yj6qo gmail-ajU"></div></div></div><br><div class="gmail_quote"><div dir="ltr">so 6. 10. 2018 o 17:42 Artem Dergachev <<a href="mailto:noqnoqneo@gmail.com">noqnoqneo@gmail.com</a>> napísal(a):<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The "root/top" AST node is TranslationUnitDecl that can be obtained via <br>
ASTContext.getTranslationUnitDecl().<br>
<br>
I guess you only need source locations in order to emit a fixit, so you <br>
can use SourceManager directly, eg. <br>
SourceManager.getLocForStartOfFile(SourceManager.getMainFileID()).<br>
<br>
The problem is probably harder though, because many files start with <br>
comments, which you'll most likely want to skip, so "top of the file" <br>
and "just before the first #include" will most likely be two different <br>
locations, and this difficulty will require more advanced hacking to <br>
overcome, which i'm not brave enough to reason about. You might find <br>
some inspiration in some of the existing clang-tidy checkers that deal <br>
with #includes, or maybe in the include-what-you-use tool (though it <br>
doesn't seem to be using fixits at all).<br>
<br>
On 10/6/18 1:53 AM, Dávid Bolvanský via cfe-dev wrote:<br>
> Hi,<br>
><br>
> test.c:<br>
> #include <stdio.h><br>
><br>
> void foo() {<br>
>     bool x;<br>
> }<br>
><br>
> When analyzing type "bool", I would like to emit fixit hint to top of <br>
> the file, just before "#include <stdio.h>".<br>
><br>
> So my question is how to find the location of "root/top" AST node.<br>
><br>
> Thanks<br>
><br>
><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>
<br>
</blockquote></div>