[cfe-dev] nodes not appearing in AST?
rwa at alumni.princeton.edu
Fri Jan 6 12:55:14 PST 2012
On Fri, Jan 6, 2012 at 12:31 PM, Eli Friedman <eli.friedman at gmail.com>wrote:
> On Fri, Jan 6, 2012 at 12:18 PM, David Blaikie <dblaikie at gmail.com> wrote:
> > I'm not sure if it's what the op was asking, but shouldn't the ast have
> > some node in the (uninstantiated template) that represents the
> > dependent call to too? Yet it seems printing the ast didn't show 'foo'
> > anywhere in the template by the looks of it. Is it perhaps just
> > something that's not printed by the ast pretty printing?
> From -ast-dump:
> void bar() (CompoundStmt 0x7fce3b058e28 <<stdin>:13:1, line:15:1>
> (CallExpr 0x7fce3b058e00 <line:14:4, col:12> '<dependent type>'
> (MemberExpr 0x7fce3b058dc8 <col:4, col:8> '<bound member function
> type>' .foo 0x7fce3b0583a0
> (MemberExpr 0x7fce3b058d90 <col:4> 'struct A' lvalue ->m_a
> (CXXThisExpr 0x7fce3b058d78 <col:4> 'B<T> *' this)))))
I may be running into problems/limitations with the python bindings to the
library. When I dump an AST using that interface, I get nodes which seem
to map onto what you're showing here, but they have spelling "None" and
displayname of an empty string.
In the non-templated case they have spelling "None" but displayname "foo",
so I am able to find them.
Do you know what libclang call returns the text above which contained the
string "foo"? It seems neither clang_getCursorSpelling nor
clang_getCursorDisplayname will in this case.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev