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