How to get location of variable name in clang::VarDecl?


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)?

The location of the start of the name is the caret location for the entire
Decl, i.e. getLocation(). The end location can be derived from that.


Thank you for answering! getLocation() is what I need

31.01.2012, × 0:58, John McCall <> ÎÁÐÉÓÁÌ(Á):