<div dir="ltr">I /think/ that column 16 in your example is the first b in bbbbb, and that Clang's AST dump is printing the first column of each token (& that the range internally is stored in terms of tokens, essentially) - the dumping format could be improved to compute the size of the token and print the end of it instead of the start. Though this is mostly an aid for the developers of Clang and having a more raw/low-level/closer-to-how-the-compiler-is-internally might be the right tradeoff here, I don't know for sure.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 3, 2019 at 1:21 AM Stanislav Pankevich via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi all,<br>
<br>
I would like to obtain the correct source locations from the Clang AST<br>
information but I am having some difficulties in doing that.<br>
<br>
The attached screenshot example-1 demonstrates running clang -Xclang<br>
-ast-dump foo.c on the following code:<br>
<br>
int foo(int aaaaa, int bbbbb) {<br>
  if (aaaaa == bbbbb) {<br>
    return 1;<br>
  } else {<br>
    return 0;<br>
  }<br>
}<br>
<br>
The source locations for the BinaryOperator only cover the "aaaaa =="<br>
part, not the full expression "aaaaa == bbbbb".<br>
<br>
In other cases (see the example-2) only the part of the second operand<br>
is covered but never the whole expression.<br>
<br>
My questions are:<br>
<br>
1) Is there a specific reason for this behavior?<br>
2) Which API should I use to obtain more precise information about the<br>
source locations? I have tried using getExpansionColumnNumber() and<br>
getColumnNumber() functions of the SourceManager class but they both<br>
give me the results similar to those of -ast-dump and I never get the<br>
precise information.<br>
<br>
Thanks in advance.<br>
<br>
Stanislav Pankevich<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="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>