a question about the location of "define"

   There is a sample program as follows:
#define *(1)*uchar char
void retrans(int *p,*(2)*uchar *q)

int main()
  int a=1;
  char b='c';
  return 0;
Now,I want to get the location about (2) with followed codes and I get
location of (1) actually.
for (FunctionDecl::param_iterator b = f->param_begin(), e = f->param_end();
b != e; ++b)
    if(ParmVarDecl *Body3=dyn_cast<ParmVarDecl>(*b))
          SourceLocation begin=Body3->getLocStart();
How I obtain the location (2)?thank you very much!


Try SourceManager::getExpansionLoc