[cfe-users] finding the source position (range) of a variable name

folkert via cfe-users cfe-users at lists.llvm.org
Wed Sep 14 02:23:37 PDT 2016


The problem can be reproduced with this small example code:
http://files.slimwinnen.nl/n-nns.tgz

Just run make and then ./parse and you'll see it saying that "! NO
NestedNameSpecifier".
The test-code is test.cpp and the file it parses is example.cpp.

> > DeclarationNameInfo dni = fd -> getNameInfo();
> > SourceRange dniSr = dni.getSourceRange(); // dniSr is position and length of name in source file
> > std::string name = dni.getName().getAsString(); // name of function/method
> > 
> > But how can I get this information for variables? Both the name and
> > sourcerange.
> > I looked in getQualifier +Loc of DeclaratorDecl but they're always
> > missing it seems?
> 
> What I mean is:
> DeclaratorDecl::getQualifierLoc().getNestedNameSpecifier() always
> returns NULL while I expect a NestedNameSpecifier object.


Folkert van Heusden

-- 
MultiTail ist eine flexible Applikation um Logfiles und Kommando
Eingaben zu überprüfen. Inkl. Filter, Farben, Zusammenführen,
Ansichten etc. http://www.vanheusden.com/multitail/
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com



More information about the cfe-users mailing list