[cfe-dev] How to get location of variable name in clang::VarDecl?

Алексей Кутумов alexey.kutumov at gmail.com
Mon Jan 30 07:11:56 PST 2012


I'm using clang 3.0 library for some analysis of C/C++ code, and I
need to get location of variable declaration, I tried this code:

clang::VarDecl * vd = ...;
clang::SourceManager & srcMgr = ...;

clang::SourceRange loc = vd->getSourceRange();
clang::PresumedLoc locStart = srcMgr.getPresumedLoc(loc.getBegin());
clang::PresumedLoc locEnd = srcMgr.getPresumedLoc(loc.getEnd());

But locStart and locEnd points to the beginning (and ending) of
declaration variable (with type, and, possibly initialiser). For

const char * ptr = 0;
^                 ^  ^   ^

locStart will point at the first pointer(^) , and locEnd will point at
the last pointer. How can I get the location of the second and third
pointers (only name, without type and initialiser)?

More information about the cfe-dev mailing list